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



我使用conda来创建包含R包的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

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

您需要沟通:

proc = Popen(['which', 'python'], stdout=PIPE)
proc.communicate()
('/Users/Kelvin/virtualenvs/foo/bin/pythonn', None)

wait只是等待子进程完成并为您提供返回代码(如果成功,则为 0(

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

最新更新