You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyInstaller打包多文件Python项目遇模块找不到错误求助

解决PyInstaller打包时ModuleNotFoundError问题

1. 规范项目包结构

Python需要识别文件夹为可导入的包,给所有需要导入的目录添加空的__init__.py文件,最终结构如下:

├───project
│   ├───__init__.py
│   ├───gui
│   │   ├───__init__.py
│   │   ├───gui.py
│   │   └───gui.ui
│   ├───resources
│   │   ├───__init__.py
│   │   ├───res.py
│   │   ├───res.qrc
│   │   ├───res_rc.py
│   │   ├───css
│   │   │   └───style.qss
│   │   ├───icons
│   │   │   └───test.png
│   │   └───settings
│   │       └───settings.ini
│   └───source
│       ├───__init__.py
│       ├───main.py
│       ├───manager0
│       │   ├───__init__.py
│       │   └───test0.py
│       ├───manager1
│       │   ├───__init__.py
│       │   └───test1.py
│       └───manager2
│           ├───__init__.py
│           └───test2.py

2. 修正main.py的导入逻辑

删掉sys.path.append('../project/resources')这行硬编码的路径,改用符合Python包规范的导入方式:

import sys
from PyQt5.QtWidgets import *
from PyQt5 import QtCore
from PyQt5.uic import loadUi

# 导入resources下res模块的project对象(根据实际代码调整路径)
from resources.res import project

# 用相对导入导入source下的子模块,简洁可靠
from .manager0.test0 import *
from .manager1.test1 import *
from .manager2.test2 import *

如果偏好绝对导入,也可以写成from source.manager0.test0 import *,需保证项目根目录在Python的搜索路径中。

3. 正确执行PyInstaller打包命令

必须从项目根目录(C:\Users\us\project)运行命令,而非source目录:

基础单文件打包

pyinstaller --onefile --name myapp source/main.py

包含资源文件的打包

项目中的ui、qss、图片、配置文件等非代码资源,需要用--add-data参数指定打包时包含:

pyinstaller --onefile --name myapp ^
--add-data "gui/gui.ui;gui/" ^
--add-data "resources/css/style.qss;resources/css/" ^
--add-data "resources/icons/test.png;resources/icons/" ^
--add-data "resources/settings/settings.ini;resources/settings/" ^
source/main.py

注意:Windows系统路径分隔用;,Linux/macOS用:。

4. 处理PyQt资源文件(可选)

如果res_rc.py是通过pyrcc5生成的Qt资源文件,若打包后出现资源找不到的情况,可添加隐藏导入:

pyinstaller --onefile --name myapp ^
--hidden-import resources.res_rc ^
# 加上其他--add-data参数
source/main.py

5. 验证运行

打包完成后,exe文件会生成在项目根目录的dist文件夹中,直接运行即可,单文件模式下程序会自动临时解压所需资源,无需手动复制文件。

内容的提问来源于stack exchange,提问作者mystic.06

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 06:26:36