如何用PyInstaller将多目录结构的Python项目打包为单可执行文件?
解决PyInstaller打包后ModuleNotFoundError的问题
针对你遇到的打包后找不到src.GUI.RecipyApp模块的问题,给你几个可行的解决办法:
直接在打包命令中指定隐藏导入
PyInstaller有时候没法自动识别深层目录的模块,你可以在打包时用--hidden-import参数手动指定要包含的模块,命令改成这样:pyinstaller --onefile --windowed --hidden-import src.GUI.RecipyApp main.py如果后续还出现其他模块缺失的报错,继续补充对应的
--hidden-import参数即可。修改spec文件打包
你已经生成了main.spec文件,直接编辑它更灵活:- 打开
main.spec,找到hiddenimports配置项,把缺失的模块添加到列表中:hiddenimports=['src.GUI.RecipyApp'], - 用修改后的spec文件重新执行打包:
pyinstaller main.spec
- 打开
检查代码中的导入方式
确保main.py里对RecipyApp的导入是绝对导入格式,比如:from src.GUI.RecipyApp import 你的类或函数名如果之前用的是相对导入(比如
from .GUI.RecipyApp import ...),打包后很容易出现路径识别问题,改成绝对导入就能解决这类问题。
内容的提问来源于stack exchange,提问作者HappyLemon
相关产品推荐
相关产品推荐

