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

pyinstaller打包Python脚本时出现Crypto相关模块缺失如何解决?

PyInstaller 虚拟环境项目打包缺依赖问题解决方案

问题根因

你全局安装的PyInstaller优先级高于虚拟环境内的版本,即便激活了虚拟环境,执行pyinstaller命令时调用的仍然是全局程序,会优先读取全局依赖库,不会主动加载虚拟环境内安装的第三方包。Windows环境下如果之前在对应虚拟环境内安装过PyInstaller,会优先调用虚拟环境内的版本,因此没有路径适配问题。

通用修复步骤(解决Linux下打包缺第三方库问题)

  • 激活当前项目的virtualenv虚拟环境
  • 在虚拟环境内安装PyInstaller,覆盖全局命令调用优先级:
pip install pyinstaller
  • 删除之前打包生成的build、dist文件夹和后缀为.spec的缓存文件
  • 无需额外指定--paths参数,直接执行打包命令即可:
pyinstaller --onefile script.py

Crypto模块缺失专项修复

Crypto类包存在命名冲突历史遗留问题,旧版pycrypto已停止维护,和替代包pycryptodome容易出现导入识别异常,可按以下步骤修复:

  • 在虚拟环境内卸载所有冲突的crypto相关包:
pip uninstall -y pycrypto pycryptodome pycryptodomex
  • 重新安装官方维护的pycryptodome包:
pip install pycryptodome
  • 若仍提示Crypto相关模块缺失,打包时手动添加隐藏导入参数即可:
pyinstaller --onefile --hidden-import "Crypto.Util.Padding" --hidden-import "Crypto.Math" script.py

如果后续打包还出现其他模块缺失的报错,都可以用--hidden-import 缺失的模块名的参数格式添加即可解决。

内容的提问来源于stack exchange,提问作者WayneNani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:15:02