我试图从脚本运行util.pyfile1.py
使用subprocess
。他们两个都在同一个目录中。当我从当前目录运行它们时,它可以正常工作,但是如果我file1.py
从其他目录运行,则它将失败。
file1.py:
#!/usr/bin/env python
import subprocess
out=subprocess.Popen(["./util.py"],shell=True)
print "done"
util.py:
#!/usr/bin/env python
def display():
print "displaying"
display()
错误:
/bin/sh: ./util.py: No such file or directory
done
./util.py
在终端中执行意味着“在当前工作目录中查找名为util.py的文件并运行它”。工作目录是您运行命令的目录。这意味着,如果您从其他目录运行python.py,则python脚本将看不到util.py。
如果确定file1.py和util.py始终位于同一目录中,则可以使用,__file__
并os.path.dirname
在其前面加上file1.py目录:
file1.py:
#!/usr/bin/env python
import os
import subprocess
current_dir = os.path.dirname(__file__)
filename = os.path.join(current_dir, "util.py")
out = subprocess.Popen([filename], shell=True)
print("done")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句