检查Python中是否安装了R

2 投票
2 回答
559 浏览
提问于 2025-04-18 17:25

我有一段 python 代码,这段代码会调用很多函数,其中有一个函数需要安装 R 软件才能正常运行。

我该如何在 python 中检查系统是否安装了 R,以便在没有安装的情况下避免调用那个函数呢?

顺便说一下,我正在使用一个 Linux 发行版(elementary OS,基于 Ubuntu 12.04)。

2 个回答

2

简单测试一下 which R 的结果:

from subprocess import check_call, CalledProcessError

try:
     check_call(['which', 'R'])
except CalledProcessError:
     print 'Please install R!'
else:
     print 'R is installed!'

这个方法在 *BSD 系统(包括 Mac OSX)上也能用。

3

使用 dpkg -s 命令配合子进程:

from subprocess import check_output
print check_output(["dpkg", "-s" , "r-base"])

或者可以用 which 命令,正如 @kay 提到的:

from subprocess import Popen, PIPE
proc = Popen(["which", "R"],stdout=PIPE,stderr=PIPE)
exit_code = proc.wait()
if exit_code == 0:
    print ("Installed")

如果使用 PIPE,你在输出中是看不到 /usr/bin/R

撰写回答