问题描述
我制作了一个在后台运行的python exe,用于数据库导入和导出。 exe 通过 php 脚本运行。以下是一般流程:
- 用户访问导出页面并点击导出按钮。
- PHP 抛出一个运行导出 exe 的 ajax
- 导出 exe 创建一个包含导出数据的文件,并在 result.txt 文件中写入 100
- PHP 检查 result.txt 文件以查看结果是否为 100。如果是,则 PHP 抛出一个 ajax 杀死导出的 exe
这不是最具开创性的过程,是的。但是,该过程有效。我尝试了多次测试,得到了 16/20 的“工作”结果。 exe 失败 4 次是因为我使用错误的用户、密码、数据库名称或主机编辑了我的配置。
当程序失败时,它不会自行结束。当 php 脚本等待其响应时,它会继续运行。我尝试在所有错误处理程序中添加 exit() 语句,但它似乎不起作用。所以,接下来我要做的就是测试那个程序的pyw脚本。我在错误处理程序中添加了一个 print(1) 语句,以查看 pyw 脚本是否通过它们并且确实通过了。
所以,我做了另一件事。这次我编写了脚本,如果遇到错误,将result.txt文件的内容编辑为“xxx”。基本上,如果 php 脚本打开 result.txt 并发现其内容是“xxx”,那么它会任务杀死导出的 exe。认为这会奏效,我开始编译 pyw 脚本。令人沮丧的是,在我开始运行 php 脚本并运行 exe 后,它卡住了,等待 result.txt 再次更改为 100 或“xxx”。该程序甚至不会编辑 result.txt。然而,当我用 vscode 调试它的 pyw 脚本时,它完成了这项工作。我还尝试检查程序是否正常运行。确实如此。
我很困惑。为什么在 pyw 脚本中可以运行,但是当它是可执行文件时就失败了?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)