子进程Python中的错误



在Linux中,如果我在终端中执行此命令:

ipython  '/media/folder1/myscript.py'

它有效。但是,如果我在ipython终端执行:

import subprocess
cmd_list= ["ipython", '/media/folder1/myscript.py' ]
proc= subprocess.Popen(cmd_list)

我有一个错误:

cmd_list= ["ipython", filescript]
proc= subprocess.Popen(cmd_list)
Traceback (most recent call last):
  File "<ipython-input-47-66f9b0f2ed3f>", line 2, in <module>
    proc= subprocess.Popen(cmd_list)
  File "/home/linux1/anaconda2/lib/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/home/linux1/anaconda2/lib/python2.7/subprocess.py", line 1343, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

为什么子过程不能执行此终端命令?

您需要指定ipython的完整路径。类型:

which ipython

在终端中,使用 subprocess告诉您的路径:

cmd_list= ["/path/from/which/ipython", '/media/folder1/myscript.py']

另外,您可以尝试使用shell=True

subprocess.Popen(cmd_list, shell=True)

这可能不建议您使用。

最新更新