Can';是否运行带有python子进程的linux.sh脚本?
我正在努力:Can';是否运行带有python子进程的linux.sh脚本?,python,linux,bash,Python,Linux,Bash,我正在努力: import subprocess subprocess.call(["file.sh"]) 但我一直得到: Traceback (most recent call last): File "project.py", line 85, in <module> subprocess.call(["file.sh"]) File "/usr/local/lib/python2.7/subprocess.py", line 522, in call
import subprocess
subprocess.call(["file.sh"])
但我一直得到:
Traceback (most recent call last):
File "project.py", line 85, in <module>
subprocess.call(["file.sh"])
File "/usr/local/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/local/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/local/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
回溯(最近一次呼叫最后一次):
文件“project.py”,第85行,在
subprocess.call([“file.sh”])
文件“/usr/local/lib/python2.7/subprocess.py”,第522行,在调用中
返回Popen(*popenargs,**kwargs)。等待()
文件“/usr/local/lib/python2.7/subprocess.py”,第710行,在__
错误读取,错误写入)
文件“/usr/local/lib/python2.7/subprocess.py”,第1335行,在执行子进程中
引发子对象异常
OSError:[Errno 2]没有这样的文件或目录
但是,当我尝试从shellbash file.sh运行脚本时,它可以工作。所以我不明白为什么它不起作用
我不承诺使用子流程,因此如果有其他选项,请告诉我。子流程
包的调用
函数运行arg中指定的命令作为字符串列表(以简化)
要调用已放入脚本中的文件,请执行以下操作:
import subprocess
subprocess.call(["sh", "file.sh"])
file.sh
(相对于bash file.sh
)是否可以从命令行工作?不为什么您希望子流程.call([“file.sh”])
能够工作呢?我刚刚尝试添加了([“bash file.sh”])
,结果完全相同。脚本file.sh是否与python脚本位于同一目录中?否则,必须将“file.sh”替换为该文件的路径。没问题。