我的情况是我希望从eclipse完成工作,所以我使用 eclipse的.launch配置。我试图让它直接运行 python ,但收到错误:error 193 (%1 is not a valid Win32 app)
。其中%1可能是我的python脚本。
我决定创建一个简单的批处理脚本来调用这个庞大的 python 动物。
我做了很多组合,发现这是最好的(批输出一些字符串,运行python,等待它,输出一些字符串):
start /b /wait "Python_script.py" "%1" "%2" "%3" "%4" "%5"
直到python本身开始运行exe文件才有效。
我再次尝试了很多组合:
os.system([exe, arg1, arg2, ...])
和
subprocess.call(..)
和subprocess.check_output(..)
- >我要么没有在eclipse控制台中看到输出,要么输出被延迟,或者在控制台中只有python /或者只有exe的输出。
最后我使用subprocess.Popen(...)
并且它几乎是好的 - 唯一的缺点是python脚本的输出不等待exe的进程完成,而当我使用subprocess.Popen(...).wait()
exe时输出到控制台,但python脚本的WHOLE输出被延迟,直到'exe'终止。我想只延迟调用exe后写入的pythons脚本输出部分。
谢谢!
答案 0 :(得分:0)
听起来我觉得你有三个不同的过程,你试图让它们一起工作,你已经尝试了很多东西来让它工作,代码很复杂,你不能轻易发布在这里。这使得很难得到一个好的答案(Stack Overflow在聚焦问题上效果更好),但这是我采取的一般方法:
Python_script.py
,您的脚本是否会运行?
start
;只需使用Python_script.py
(或类似)替换启动配置中的c:\Python27\python.exe Python_script.py
。subprocess.call
,subprocess.check_output
和Popen
都有不同的用途,因此除了referring to the documentation之外,很难提供一般性建议。