如何解决Python导入Crypto.Cipher库中AES加密算法失败的问题
配置:python 3.10 ;crypto 1.4.1
要使用 Crypto 模块,有2个Python包可以安装,分别是 pycrypto(旧版,不再维护)和 pycryptodome(新版,推荐使用)。
二者用 pip 安装的方式分别是 :
pip install pycrypto
pip install pycryptodome
导入AES模块时,两个库的用法是一样的:
from Crypto.Cipher import AES
如果因为安装的是旧版pycrypto,导致使用Python3.10解释器时无法兼容,可以尝试将旧版pycrypto升级为新版pycryptodome,具体操作方式如下:
找到旧版pycrypto所在位置(根据你项目选择的Python解释器的位置来找),假如在路径 C:\Users\xxx\AppData\Local\Programs\Python\Python310\Lib\site-packages 下,那么就去 C:\Users\xxx\AppData\Local\Programs\Python\Python310\Scripts 路径下激活该环境(这是为了保证pip安装新版pycryptodome的时候可以直接覆盖旧版pycrypto),激活方法如下:
首先在要激活的路径,也就是C:\Users\xxx\AppData\Local\Programs\Python\Python310\Scripts下,打开cmd,不会直接打开的话也可以先打开cmd再cd到该路径,然后在cmd输入activate命令后回车。等出现新的命令行的时候,输入pip install pycryptodome回车就行。
这种方法会将新版pycryptodome安装到旧版pycrypto所在的位置,并直接替换掉它。正常情况下site-packages中会新下载2个文件:(注:第一个Crypto文件名一定要是大写的C,如果是小写的crypto就手动把它改成大写的)
这样就能导入成功了。
作者:J226300