【发布时间】:2014-03-13 11:55:23
【问题描述】:
我现在使用Python运行一个自己开发的命令行可执行程序:
import subprocess
cmd = '../../run_demo'
print cmd
subprocess.Popen(cmd)
此脚本在 Windows 中运行良好。但是在linux上运行,报错如下:
Traceback:
File "script.py", line 6, in <module>
subprocess.Popen(cmd)
File "/user/lib/python2.5/subprocess.py", line 623, in _init_
erread, errwrite)
File "/user/lib/python2.6/subprocess.py", line 1141, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
由于可执行命令打印在脚本print cmd中,如果我复制cmd的内容,然后在命令行中运行,那么可执行程序就可以运行了。有任何想法吗?谢谢。
【问题讨论】:
-
run_demo是脚本文件吗?在这种情况下,命令将是cmd = '../.././run_demo' -
@DOOM 你不需要
./ -
当你运行它时你的工作目录是什么?当您在该工作目录中时,
../../run_demo是否在 shell 中工作? -
@DOOM 感谢 cmets。 run_demo 是一个可执行程序(用c++编写,用g++编译)