PyInstaller打包脚本Fedora运行提示无法加载Crypto.Cipher._raw_ecb如何解决
问题原因
该错误是Fedora环境下PyInstaller未自动识别并打包pycryptodome库的原生二进制.so依赖导致的,Windows环境可正常运行是因为Windows版pycryptodome的二进制dll文件会被PyInstaller正常检索收录。
解决方案
步骤1:修正打包命令语法错误
你当前使用的打包命令存在语法问题,第二个--paths参数的路径末尾和script.py之间缺少空格,先修正为:
pyinstaller --onefile --paths /path/to/venv/lib/python3.9/site-packages \ --paths /path/to/venv/lib64/python3.9/site-packages script.py
步骤2:显式指定收集Crypto库的二进制文件
PyInstaller默认不会主动收录Crypto相关的原生二进制文件,需要用--collect-binaries参数强制收集:
pyinstaller --onefile --paths /path/to/venv/lib/python3.9/site-packages \ --paths /path/to/venv/lib64/python3.9/site-packages \ --collect-binaries Crypto \ script.py
步骤3:追加隐式导入配置(可选)
如果执行上述命令后仍然报错,可追加--hidden-import参数声明隐式导入的模块:
pyinstaller --onefile --paths /path/to/venv/lib/python3.9/site-packages \ --paths /path/to/venv/lib64/python3.9/site-packages \ --collect-binaries Crypto \ --hidden-import Crypto.Cipher._raw_ecb \ script.py
步骤4:验证pycryptodome安装状态
确认你的虚拟环境中安装的是官方维护的pycryptodome而非停止维护的旧版pycrypto,避免库本身缺失文件:
pip uninstall pycrypto -y pip install pycryptodome
重新执行打包命令即可正常生成可执行文件。
内容的提问来源于stack exchange,提问作者WayneNani
相关产品推荐
相关产品推荐

