PyInstaller打包的EXE出现内置json模块找不到的报错求助
解决PyInstaller打包后找不到内置json模块的问题
以下是几个可行的排查与解决步骤:
检查打包命令是否误排除内置模块:确认使用PyInstaller时没有添加
--exclude-module json这类参数,这类参数会强制移除内置模块,直接删掉该参数重新打包即可。重新生成并使用spec文件打包:
- 删除当前目录下的
build、dist文件夹以及自动生成的.spec文件 - 用虚拟环境中的PyInstaller重新生成spec文件并打包,示例命令:
(如果不需要单文件打包,去掉pyinstaller --onefile Main.py--onefile参数即可)
- 删除当前目录下的
确认使用的是虚拟环境内的PyInstaller:执行
where pyinstaller(Windows)或which pyinstaller(Linux/macOS),检查输出路径是否属于你的虚拟环境目录。如果是系统全局的PyInstaller,先激活虚拟环境,再重新执行打包命令。手动在spec文件中添加json到隐藏导入:
- 生成spec文件后,用编辑器打开它
- 找到
hiddenimports=[]这一行,修改为hiddenimports=['json'] - 执行
pyinstaller your_script_name.spec重新打包
清理缓存后重新打包:删除项目中的
__pycache__文件夹、PyInstaller生成的build和dist目录,再重新执行打包命令,避免旧缓存导致的异常。
内容的提问来源于stack exchange,提问作者Mithi029
相关产品推荐
相关产品推荐

