Pyinstaller打包报错:ModuleNotFoundError: No module named 'setuptools._distutils'
解决PyInstaller打包后出现
ModuleNotFoundError: No module named 'setuptools._distutils'的问题 针对你遇到的打包后运行报错问题,以下是几个可行的解决方法:
方法1:使用--collect-submodules参数强制收集子模块
PyInstaller的--collect-submodules可以指定收集某个包下的所有子模块,直接解决子模块缺失的问题。执行打包命令时添加该参数:
pyinstaller --collect-submodules setuptools StellaVC.py
方法2:创建自定义PyInstaller钩子文件
在项目根目录下创建名为hook-setuptools.py的文件,内容如下:
from PyInstaller.utils.hooks import collect_submodules hiddenimports = collect_submodules('setuptools')
然后执行打包命令时指定钩子目录:
pyinstaller --additional-hooks-dir=. StellaVC.py
方法3:降级setuptools版本
部分新版本setuptools的_distutils导入机制发生变化,导致PyInstaller无法正确识别。可以尝试降级到兼容版本:
pip install setuptools==60.2.0
降级完成后删除原有的build和dist目录,重新执行打包命令。
方法4:在脚本中显式导入依赖
在你的StellaVC.py最开头添加以下代码,强制触发PyInstaller识别该依赖:
# 显式导入,确保PyInstaller打包时包含该模块 import setuptools._distutils
保存后重新打包即可。
额外注意事项
- 打包前删除项目目录下的
build、dist文件夹和*.spec文件,避免缓存干扰 - 确保在激活虚拟环境(如果使用)的状态下执行打包命令
内容的提问来源于stack exchange,提问作者Sophiefy
相关产品推荐
相关产品推荐

