首页 > 解决方案 > Popen 不运行我的 exe

问题描述

(Python 3)

我正在尝试在一个小脚本中使用 popen 来运行可执行文件

可执行文件位于: https ://github.com/Gorov/FCM_nips_workshop

我在 Windows 上,通过稍微修改 github README 命令,我可以使用以下命令轻松运行程序

RE_FCT ../data/SemEval.train.fea.sst ../data/SemEval.test.fea.sst predict.fea.fullnerpair.onlyne.txt ../data/vectors.nyt2011.cbow.semeval.filtered 5 0.005

exe 是 RE_FCT,以下所有文本只是参数

因此,使用终端它可以正常工作并在运行时显示信息

但是当我尝试使用我的小 python 脚本让它运行时,它什么也没做。实际上有些东西似乎在运行,但它永远不会结束,也没有显示任何东西

这是我的代码

import subprocess


command = ['RE_FCT', '../data/SemEval.train.fea.sst', '../data/SemEval.test.fea.sst ', 'predict.fea.fullnerpair.onlyne.txt', '../data/vectors.nyt2011.cbow.semeval.filtered', '5', '0.005']
process = subprocess.Popen(test, cwd="fcm", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
process.wait()

print() #sometimes it helps

请注意,我已经在运行另一个具有类似代码的 exe 并且它可以工作 在此先感谢

标签: python-3.xsubprocessexepopenlaunch

解决方案


刚刚解决了

我不知道到底发生了什么,但问题出在process.wait(),我只是删除了它并用Popen函数替换了函数run,它可以工作

这两者之间的区别在于popen允许脚本在您通过创建进程调用它后立即运行,而使用run您必须等待任务结束


推荐阅读