Pycryptodome导入AES模块报错 无法加载_raw_ecb原生模块
问题原因
该报错核心是pycryptodome库依赖的Windows原生二进制模块缺失,无法加载AES加解密相关的底层实现,常见触发场景包括:
- 环境中同时安装了已停止维护的旧版
pycrypto库,两个库共用Crypto命名空间,文件互相覆盖导致原生模块损坏丢失 - 安装的pycryptodome版本与本地Python版本、系统架构不匹配(比如本地是64位Python3.9,安装了32位/其他Python版本适配的wheel包),找不到对应标识的
.pyd动态库文件 - 未通过pip正常安装,直接手动复制
Crypto文件夹到Python库目录,遗漏了编译好的原生二进制文件 - 系统杀毒软件误将后缀为
.pyd的原生库判定为风险文件隔离删除,导致程序加载时找不到对应文件
解决步骤
按顺序操作即可修复:
- 彻底卸载残留的冲突库
打开命令行,反复执行以下两条命令,直到提示环境中不存在对应包为止,确保旧版本/损坏版本完全卸载:pip uninstall pycrypto pip uninstall pycryptodome - 手动清理残留文件
打开报错提示中的Python库路径C:\Users\MyUser\AppData\Local\Programs\Python\Python39\lib\,找到路径下的Crypto文件夹直接删除,避免残留旧文件干扰新版本安装。 - 重新安装匹配版本的pycryptodome
执行安装命令,如果本地存在多个Python版本,需要调用Python3.9对应的pip执行安装:
安装完成后可以进入pip install pycryptodomeC:\Users\MyUser\AppData\Local\Programs\Python\Python39\lib\Crypto\Cipher目录,确认存在_raw_ecb.cp39-win_amd64.pyd文件,即代表安装完整。 - 排查安全软件拦截
如果重装后仍然提示文件不存在,打开本地杀毒软件/系统安全中心的隔离区,检查是否有对应.pyd文件被拦截,将Python库目录加入白名单后重新执行安装步骤即可。 - 虚拟环境特殊处理
如果程序运行在独立虚拟环境中,需要先激活对应虚拟环境再执行安装命令,避免将依赖安装到全局Python环境,导致虚拟环境内找不到对应模块。
内容的提问来源于stack exchange,提问作者TempNull
相关产品推荐
相关产品推荐

