Popen子进程在SublimeREPL中不起作用?

时间:2017-07-15 15:18:30

标签: python r sublimetext3 sublimerepl

我使用conda创建包含R package的Python 2.7环境。如果我在控制台中打开Python会话,我可以检查R是否确实与Popen构造函数一起安装:

$ python
>>> from subprocess import Popen, PIPE
>>> proc = Popen(["which", "R"], stdout=PIPE, stderr=PIPE)
>>> proc.wait()
0

0表示已安装。但是如果我在完全相同的Python环境下运行的Sublime Text 3 REPL内尝试相同的命令,我会得到一个1

为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:1)

你需要沟通:

proc = Popen(['which', 'python'], stdout=PIPE)
proc.communicate()

('/Users/Kelvin/virtualenvs/foo/bin/python\n', None)

wait只是等待子进程完成并给你返回代码(如果成功则为0)

如果您收到不同的错误代码(1表示失败),我会考虑确认您的虚拟环境。试试sys.executable