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

Python加密程序转EXE后无法运行,导入AES模块报错求助

解决PyInstaller打包Crypto AES加密程序的运行报错问题

嘿,我之前也踩过PyInstaller打包Crypto相关程序的坑!从你的报错回溯来看,问题出在打包后的exe找不到Crypto.Cipher.AES模块——这是因为PyInstaller的静态依赖分析没自动识别到这个模块,导致打包时漏掉了它。给你几个亲测有效的解决办法:

  • 先确认依赖库版本(重要!)
    旧的pycrypto库已经停止维护了,而且和PyInstaller的兼容性很差。先卸载旧库,换成维护中的pycryptodome:

    pip uninstall pycrypto
    pip install pycryptodome
    
  • 用--hidden-import手动指定缺失模块
    修改你的打包命令,直接告诉PyInstaller要把Crypto.Cipher.AES包含进去:

    pyinstaller -F --hidden-import Crypto.Cipher.AES en-decryptor-v2.py
    

    如果还是不行,可以放宽范围,把整个Crypto相关模块都加进去:

    pyinstaller -F --hidden-import Crypto --hidden-import Crypto.Cipher en-decryptor-v2.py
    
  • 通过spec文件手动配置打包选项
    如果自动打包还是有问题,生成spec文件来精细化控制:

    1. 生成spec文件:
      pyinstaller -F en-decryptor-v2.py --specpath .
      
    2. 打开生成的en-decryptor-v2.spec,找到hiddenimports字段,添加需要的模块:
      hiddenimports=['Crypto.Cipher.AES', 'Crypto.Cipher'],
      
    3. 用spec文件重新打包:
      pyinstaller en-decryptor-v2.spec
      
  • 针对Python 2.7的额外优化
    从你的报错路径c:\python27看,你用的是Python 2.7,这个版本下可以试试加上--noupx参数,避免UPX压缩破坏Crypto的二进制文件:

    pyinstaller -F --hidden-import Crypto.Cipher.AES --noupx en-decryptor-v2.py
    

简单说下原因:PyInstaller靠静态扫描代码找依赖,但Crypto库内部有一些动态导入的逻辑,静态分析抓不到,所以必须手动指定这些隐藏的依赖模块,打包后exe才能正常运行。

内容的提问来源于stack exchange,提问作者S. Backlayn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:35:26