我有一个python
代码,可以调用许多函数,其中一个函数需要安装R
software才能正常运行。
我如何在python
内检查系统中是否安装了R
,以避免在没有调用该函数的情况下调用该函数?
BTW我正在运行Linux发行版(基本操作系统,基于Ubuntu 12.04)
答案 0 :(得分: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
答案 1 :(得分: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)。