Fedora 16,python 子进程.从 IDE 打开 vs 从终端



所以正如标题所说,我在 Fedora 下启动一个新的子进程时遇到了问题。现在的情况是,我有一个主要的 python 脚本,我从中使用以下方法启动其他几个 python 进程:

import subprocess
subprocess.Popen(['python', '-m', 'first_child.run', 'start'], shell=False)

现在这在MacOS,debian和Windows上工作正常。在 Fedora 上,如果我从 Aptana 3 IDE 运行它,它也可以工作,唯一的问题是当我尝试从终端运行这个主脚本时,我得到:

OSError: [Errno 2] No such file or directory

你有什么想法吗?

问候波格丹

抱歉,

如果您已经想到了这一点 - 但是OSError从调用子进程的最常见原因是它找不到进程

http://docs.python.org/library/subprocess.html#exceptions

你绝对确定蟒蛇在你的道路上吗?

我知道你可能会指出你从python可执行文件运行了这个脚本 - 但我想我会试一试,也许当你从终端运行python时,你指定了python的完整路径。

为了好玩,在调用子进程之前,您可以转储您的 PATH

import os
print os.environ['PATH']

这是您当前的工作目录。我不认为问题在于它找不到python,问题是它找不到first_child.run

在启动子流程之前尝试打印os.getcwd(),看看终端和 IDE 中是否有不同。

附带说明一下,使用 sys.executable 作为您在子流程中使用的 python 可能更可靠,而不是仅仅说 python。例如,subprocess.Popen([sys.executable, '-m', 'first_child.run', 'start'], shell=False)

最新更新