如何用PyInstaller将多文件PySide6项目打包为.exe?
多文件PySide6项目PyInstaller打包问题
我正在开发一个由多Python文件和文件夹组成的PySide6应用,直接运行python main.py完全正常,但打包成包含所有资源的独立.exe时遇到问题。
项目结构
MyProject/ # 文件夹 ├── main.py # 应用入口 ├── models.py # 文件 ├── staff.db # 文件 ├── utils.py # 文件 ├── photos/ # 图片资源文件夹 ├── views/ # 文件夹 │ ├── __init__.py │ ├── main_app.py # 含main.py依赖的MainApp类 │ ├── admin_views/ # 文件夹 │ │ ├── __init__.py # 文件 │ │ ├── admin_file1.py # 文件 │ │ ├── admin_file2.py # 文件 │ │ ├── ... # admin_views其他文件 │ ├── ... # 其他视图相关Python文件
运行打包后.exe的错误
ModuleNotFoundError: No module named 'views'
使用的PyInstaller打包命令
pyinstaller --name "MyProject" --onefile --windowed --icon=resources/icon.ico main.py
观察结果
- 直接运行
python main.py无任何问题 - 怀疑PyInstaller未打包所有必需的文件和依赖
views及内部admin_views文件夹中的模块都是应用运行必需的
已尝试的方案
- 为相关文件夹添加了
__init__.py文件 - 检查过PyInstaller是否自动包含目标文件夹
- 使用
--paths参数显式引入views文件夹
问题
- 如何确保PyInstaller打包所有文件和资源?
- 多文件Python项目有没有特定的PyInstaller配置方法?
--onefile参数是否合适?有没有更优的打包方案?
期望
生成与直接运行效果完全一致的独立.exe,能正常加载views等模块,同时打包staff.db、photos等资源文件。
内容的提问来源于stack exchange,提问作者Sei Godwin
相关产品推荐
相关产品推荐

