使用pyinstaller打包python文件时遇到的模块问题

问题概述

在使用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本身内部逻辑的问题,具体是什么原因还有待考证,刚把作业交上了不想理他了,如果读者对此有了解欢迎交流!

原文地址:https://www.cnblogs.com/chuaner/p/12600547.html