PyInstaller打包exe报错:No module named 'yaml',已装pyyaml仍无解
解决PyInstaller打包exe时PyYAML模块丢失的问题
以下是几个经过验证的解决方法,按优先级尝试:
方法1:通过.spec文件精准配置依赖
- 先生成对应的.spec配置文件:
pyinstaller main.py - 打开生成的
main.spec,找到hiddenimports参数,添加'yaml'和'pyyaml'两个条目:hiddenimports=['yaml', 'pyyaml'], - 基于修改后的.spec文件重新打包:
pyinstaller main.spec
- 先生成对应的.spec配置文件:
方法2:打包命令中强制指定双重隐藏导入与路径
之前的参数可能不够完整,试试同时指定yaml和pyyaml作为隐藏导入,并确保路径用引号包裹:pyinstaller --hidden-import pyyaml --hidden-import yaml -p "c:\users\abc\python37\lib\site-packages" main.py方法3:确认打包环境一致性
如果使用了虚拟环境,必须激活对应环境后再执行打包命令,否则PyInstaller会读取全局Python环境的依赖,可能漏掉虚拟环境里的PyYAML。方法4:修改代码中的导入语句
找到报错的dataloaders.py文件,把import yaml替换为import pyyaml as yaml,让PyInstaller更清晰地识别到依赖模块。
内容的提问来源于stack exchange,提问作者J Peg
相关产品推荐
相关产品推荐

