使用auto-py-to-exe打包exe时出现Cryptodome模块未找到问题
解决PyInstaller打包时缺失Cryptodome模块的问题
以下是几个可行的解决步骤:
1. 修正hidden-import参数的写法
确保将Cryptodome及其子模块都加入隐藏导入,执行命令时改成:
pyinstaller --noconfirm --onefile --console --hidden-import Cryptodome --hidden-import Cryptodome.Cipher "C:/Users/user1/Desktop/test/script.py"
有时候仅指定主模块不够,需要明确包含用到的子模块。
2. 使用.spec文件手动配置依赖
- 先生成.spec文件:
pyinstaller --onefile --console "C:/Users/user1/Desktop/test/script.py" - 打开生成的
script.spec文件,找到hiddenimports字段,修改为:hiddenimports=['Cryptodome', 'Cryptodome.Cipher'], - 再用PyInstaller编译.spec文件:
pyinstaller script.spec
3. 确认打包环境与运行环境一致
检查当前执行PyInstaller的Python环境,是否和运行.py脚本的环境是同一个。如果用了虚拟环境,确保激活后再执行打包命令;同时确认pycryptodome是安装在该环境下的:
pip list | findstr pycryptodome
如果没找到,重新安装:
pip install pycryptodome
4. 尝试卸载重装pycryptodome
有时候模块安装可能有损坏,卸载后重装:
pip uninstall -y pycryptodome pip install pycryptodome
重装完成后再重新打包。
内容的提问来源于stack exchange,提问作者ArtemGetman
相关产品推荐
相关产品推荐

