我有一个forked python进程需要执行另一个python脚本。 我在OpenWRT中使用python 2.7。
Traceback (most recent call last):
File "./twitter.py", line 61, in <module>
subprocess.call(['./tweet.py', text])
File "/usr/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
Exception in thread Thread-1 (most likely raised during interpreter shutdown):
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
这是我如何分叉过程:
try:
pid = os.fork()
print pid
if pid > 0:
# Exit parent process
sys.exit(0)
except OSError, e:
self.logger("Fork failed")
sys.exit(1)
以下是我尝试调用另一个脚本的方法:
subprocess.call(['./tweet.py', text])
答案 0 :(得分:3)
OSError: [Errno 2] No such file or directory
此错误表示Python无法找到文件./tweet.py
。
默认情况下,Python查找当前工作目录,即脚本名称的目录。请注意,这可能与脚本所在的目录不同。
尝试提供绝对路径,或使用os.chdir
更改为包含tweet.py
的目录,或根据其与__file__
(调用脚本的路径)的关系构建路径。例如,如果tweet.py
与调用脚本位于同一目录中,则可以使用:
tweetpath = os.path.join(os.path.dirname(__file__), 'tweet.py')
subprocess.call([tweetpath, text])