python-3.x - 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 并且它可以工作 在此先感谢
解决方案
刚刚解决了
我不知道到底发生了什么,但问题出在process.wait()
,我只是删除了它并用Popen
函数替换了函数run
,它可以工作
这两者之间的区别在于popen
允许脚本在您通过创建进程调用它后立即运行,而使用run
您必须等待任务结束
推荐阅读
- python - 数据框行中的列合并和移位元素
- javascript - 在点击和页面加载之前验证路由
- android - flutter_ffmpeg 连接解复用器 | 前置摄像头视频颠倒或损坏
- java - java -jar 到 springboot jar 返回 PID 而不是退出代码
- wkhtmltopdf - laravel 8中使用的wkhtmltopdf不显示图像和图表
- typescript - 如何使用 NestJS 中的同一类更改嵌套对象中的验证
- django - 如何使用 daphne 调试 Django
- reactjs - 如何将查询参数发送到始终出现在 _app 中的 Header 组件?下一页
- r - 从 STATA 数据集中继承值标签以在 R 中使用
- go - gqlgen - DirectiveResolver 未由生成的包导出