模块未找到错误:没有名为"Crypto"的模块。

15

我已经在Python 3.6.5上安装了pycryptodomex模块,但当我尝试执行下面的调用时,我会得到标题中提到的错误。

from Crypto.Cipher import AES

我想使用AES加密文件。现在该怎么做?


可能是ImportError: No module named Crypto.Cipher的重复问题。 - Nouman
6个回答

51
>> pip install pycryptodome

from Crypto.Cipher import AES  #Works
或者
>> pip install pycryptodomex
from Cryptodome.Cipher import AES 

对于Python3,现在的软件包名称为pycryptodomepycryptodomex

如果您需要与 Python2 兼容,请使用 pycryptodome ,否则请使用独立于旧PyCrypto的库 pycryptodomex


成功了!可能我试图安装的模块已经不再受管理或不兼容。 - achilles59
使用模块名称“pycryptodomex”对我很有效!谢谢。 - maxxyme
Cryptodome和pycryptodomex适用于Python 3.9。 - Achraf JEDAY

13

你好,我遇到了同样的问题: _pycryptodome几乎可以完全替代旧的PyCrypto库。您可以使用以下命令进行安装:

$ pip install pycryptodome (版本号为(3.8.2)或最新版本) 转到此目录: 2) [C:\Users\s****\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\crypto]

在这里,尝试将文件名crypto更改为Crypto(C大写),因为每个包中都将其导入为Crypto。 它对我有用,祝你好运:)


给定的目录完全匹配,感谢您提供的解决方案! - Kubra Altun

6
根据 PyPI 页面显示,pycryptodomex 现在以 Cryptodome 的名称提供,而不再是 Crypto。请参考 PyPI 页面

0

您需要安装Cryptography软件包。 请访问这里获取更多详细信息。

或者您可以在终端尝试使用pip install命令:

pip3 install pycrypto

那是针对Python2的,他明确提到了Python3。 - NoorJafri
@NoorAliJafri,它适用于两种情况,只要他安装了哪个版本的Python。如果他都安装了,那么他只需要使用pip3而不是pip即可。 - Sparsh Shrivastava
我在两个版本中都进行了检查,在这两种情况下,它都安装了pycrypto,但使用pip3时可以导入crypto.cipher。只需提及这个细节即可。 - NoorJafri
1
对于那些正在运行Python 3.8.x并尝试安装使Crypto.Cipher.AES可用的软件包的人来说,pip3 install pycrypto正是我所需要的。不知道什么是cryptodome以及为什么你需要它而不是pycrypto... - Joshua Burns

0

我正在使用Python 3.6.9版本。我需要执行以下命令:

python3.6 -m pip install pycryptodome


0
如果您已经安装了Cryptodome,您可以尝试创建一个符号链接 ln -s Cryptodome Crypto

1
我不建议使用这个解决方案,它在本地机器上可以工作,但在部署时会出现问题。 - NoorJafri

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接