问题概述
在使用python开发一个网络程序时,想要用pyinstaller生成可执行文件,简略的目录结构如下:
- client
- login.py
- mainwindow.py
- register.py
其中login.py为入口文件,import 了mainwindow和register.py中的类
生成可执行文件后,双击,弹出提示:“failed to execute script”
解决过程
参考了博文:https://blog.csdn.net/A807296772/article/details/82769835
发现可以在‘build’目录下找到一个name/warnnamegui.txt(name为自己设置的名字)中找到一些信息
打开该文件后发现了几个问题:
missing module named mainwindow -imported by login.py
mising moduled named ...
...
是有几个模块加载出了问题,但在命令行运行是没问题的
既然这样,我就想着之前遇到类似的问题可以改为:
from client.mainwindow import ...
就试了一下,没想到还真的成功了,可以做一下参考
思考
刚才写文时突然想到这可能同我执行pyinstaller命令的时的所在目录有关系,但也有可能是pyinstaller本身内部逻辑的问题,具体是什么原因还有待考证,刚把作业交上了不想理他了,如果读者对此有了解欢迎交流!