ImportError: No module named Crypto.Cipher
当我尝试运行app.py(Python 3.3,PyCrypto 2.6)时,我的virtualenv不断返回上面列出的错误。 我的导入语句只是
您可以在下面查看PyCrypto的文件格式:

使用
1 2 | pip uninstall pycrypto easy_install pycrypto |
就像卢克(Luke)所说:如果您在运行这些命令时遇到麻烦,请确保以admin(sudo)身份运行它们
希望这可以帮助!
我也在Mac上遇到了这个问题,它似乎与通过pip在pycrypto旁边安装了一个不幸的名字相似的" crypto"模块(不确定该使用的是什么)有关。
该修复程序似乎正在通过pip删除crypto和pycrypto:
1 2 | sudo pip uninstall crypto sudo pip uninstall pycrypto |
并重新安装pycrypto:
1 | sudo pip install pycrypto |
现在,当我执行以下操作时,它可以按预期工作:
1 | from Crypto.Cipher import AES |
我有同样的问题(尽管在Linux上)。解决方案非常简单-添加:
1 2 3 | libraries: - name: pycrypto version:"2.6" |
到我的
在Mac上...如果遇到此问题,请尝试查看是否可以导入加密货币?
如果是这样..包名称是问题
1 2 3 | import crypto import sys sys.modules['Crypto'] = crypto |
您知道应该能够成功导入paramiko。
输入命令:
1 | sudo pip install pycrypto |
我找到了解决方案。问题可能是区分大小写(在Windows上)。
只需更改文件夹的名称:
-
C:\Python27\Lib\site-packages\crypto -
至:
C:\Python27\Lib\site-packages\crypto
这是在安装pycrypto之后命名文件夹的方式:
我将其更改为:
现在,以下代码可以正常工作:
卸载
1 2 3 | pip uninstall crypto pip uninstall pycrypto pip install pycrypto |
如果您使用的是redhat,fedora,centos:
<5233>
就我而言,我不会使用pip安装它
我遇到了相同的问题
对我有用的解决方案是...
1)下载pycrypto2.6源将其解压缩到某处(
例如git clone https://github.com/dlitz/pycrypto.git
2)然后
3)在上一个文件夹中执行以下终端命令,以便在GAE文件夹中手动安装pyCrypto 2.6。
1 | sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine |
尝试使用pip3:
1 | sudo pip3 install pycrypto |
加载通过pip安装的python模块可能是一个问题。参考此答案无法从site-packages目录中通过pip加载安装的Python模块,并尝试类似的方法
1 | python -m pip install pycrypto |
对于CentOS 7.4,我首先安装了pip,然后使用pip进行了pycrypto:
1 2 | > sudo yum -y install python-pip > sudo python -m pip install pycrypto |
为我工作(Ubuntu 17.10)
删除venv并使用python v3.6重新创建
1 2 3 4 5 | pip3 install PyJWT sudo apt-get install build-essential libgmp3-dev python3-dev pip3 install cryptography pip3 install pycryptodome pip3 install pycryptodomex |
Pycrypto已过时,存在问题,已使用Pycryptodome
警告:不再使用
您可以在此页面上阅读,
Pycrypto is vulnerable to a heap-based buffer overflow in the ALGnew function in block_templace.c. It allows remote attackers to execute arbitrary code in the python application. It was assigned the CVE-2013-7459 number.
Pycrypto didn’t release any fix to that vulnerability and no commit was made to the project since Jun 20, 2014.
解决方案:使用Python3和
TL; DR:
设置新的虚拟环境
要安装虚拟环境并设置所有内容,请使用以下命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # install python3 and pip3 sudo apt update sudo apt upgrade sudo apt install python3 sudo apt install python3-pip # install and create a virtual environment # cd to or mkdir the folder where you want your venv pip3 install virtualenv python3 -m virtualenv . # now activate your venv and install pycryptodome source bin/activate pip3 install pycryptodome # check if everything worked: # start the interactive python console and import the Crypto module # when there is no import error then it worked python >>> from Crypto.Cipher import AES >>> exit() # don't forget to deactivate your venv again deactivate |
有关更多信息,请参见pycryptodome.org。
我通过将首字母大写更改为大写来解决此问题。
确保"从Crypto.Cipher导入AES"而不是"从crypto.Cipher导入AES"。
对于Windows 7:
我遇到了这个错误"模块错误Crypo.Cipher导入AES"
要在Windows中安装Pycrypto,
在命令提示符中尝试此操作,
设置路径= C: Python27 Scripts(即easy_install所在的路径)
然后执行以下命令
easy_install pycrypto
对于Ubuntu:
尝试这个,
从" https://pypi.python.org/pypi/pycrypto"下载Pycrypto
然后使用终端将当前路径更改为下载路径:
例如:root @ xyz-virtual-machine:?/ pycrypto-2.6.1#
然后使用终端执行以下命令:
python setup.py安装
对我有用。希望为所有人服务。
到目前为止,即使我已经安装/重新安装pycrypto几次,导入
~ pip --version
pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
使用pip2安装pycrypo应该可以解决此问题。
也许您应该这样做:
pycryptodome == 3.6.1
将其添加到requirements.txt并安装,这将消除错误报告。
这个对我有用!
如果您是macOS,请将lib文件夹
可以通过安装C ++编译器(python27或python26)来解决此问题。从Microsoft https://www.microsoft.com/zh-cn/download/details.aspx?id=44266下载并重新运行命令:
我是3.7。在我尝试安装加密后,问题仍然存在。在我的情况下,pycrypto只是失败了。所以最后我的构建通过下面的包传递:
pip安装pycryptodome