在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)
这可能不建议您使用。