Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ImportError:没有名为Crypto.Cipher的模块_Python_Virtualenv_Pip_Easy Install_Pycrypto - Fatal编程技术网

Python ImportError:没有名为Crypto.Cipher的模块

Python ImportError:没有名为Crypto.Cipher的模块,python,virtualenv,pip,easy-install,pycrypto,Python,Virtualenv,Pip,Easy Install,Pycrypto,当我尝试运行app.py(python3.3,PyCrypto 2.6)时,我的virtualenv会不断返回上面列出的错误。我的import语句只是来自Crypto.Cipher import AES的。我寻找了重复的,你可能会说有一些,但我尝试了解决方案(尽管大多数甚至不是解决方案),但没有任何效果 您可以在下面看到PyCrypto的文件: 我也有同样的问题(尽管是在Linux上)。解决方案非常简单-添加: libraries: - name: pycrypto version: "2.

当我尝试运行app.py(python3.3,PyCrypto 2.6)时,我的virtualenv会不断返回上面列出的错误。我的import语句只是来自Crypto.Cipher import AES的
。我寻找了重复的,你可能会说有一些,但我尝试了解决方案(尽管大多数甚至不是解决方案),但没有任何效果

您可以在下面看到PyCrypto的文件:

我也有同样的问题(尽管是在Linux上)。解决方案非常简单-添加:

libraries:
- name: pycrypto
  version: "2.6"
到我的
app.yaml
文件。由于这在过去工作正常,我认为这是一个新的要求。

键入命令:

sudo pip install pycrypto

使用
pip
进行安装时,我的Mac电脑也遇到了同样的问题。然后我删除了
pycrypto
,并使用
easy\u install
再次安装了它,如下所示:

pip uninstall pycrypto
easy_install pycrypto
正如Luke所评论的:如果您在运行这些命令时遇到问题,请确保以admin(sudo)的身份运行它们

希望这有帮助


编辑:正如文克尔在上面正确指出的,pycrypto不再安全。请改用pycryptodome,它是mac上的一个替代品

。。。如果你遇到这个。。尝试看看是否可以导入加密

如果是的话。。包名称是问题
C
vs
C
。为了避开这个。。只需将这些行添加到脚本的顶部

import crypto
import sys
sys.modules['Crypto'] = crypto

您知道应该能够成功导入paramiko。

如果您使用的是redhat、fedora、centos:

sudo yum安装pycrypto


就我的情况而言,我不能使用pip安装它,因为在OSX 10.8.5(Mountain Lion)上使用GoogleAppEngineLauncher(版本>1.8.X)和GAE样板文件,所以我遇到了相同的问题。在使用python 2.7运行时的Google App Engine SDK中,pyCrypto 2.6是建议的版本。 对我有效的解决方案是

1) 下载pycrypto2.6源代码并在某处提取它(
~/Downloads/pycrypto26

e、 g.git克隆

2)
cd
cd~/Downloads/pycrypto26
)然后

3) 在上一个文件夹中执行以下终端命令,以便在GAE文件夹中手动安装pyCrypto 2.6

sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine

适用于Windows 7:

我通过了这个错误“模块错误Crypo.Cipher导入AES”

要在Windows中安装Pycrypto

在命令提示符中尝试此操作

设置路径=C:\Python27\Scripts(即easy\u install所在的路径)

然后执行以下命令:

轻松安装pycrypto

对于Ubuntu:

试试这个

从“”下载Pycrypto

然后使用终端将当前路径更改为下载路径:

例如:root@xyz-虚拟机:~/pycrypto-2.6.1#

然后使用终端执行以下操作:

python setup.py安装


这对我有用。希望适用于所有人。

我通过将第一个字母的大小写改为大写来解决这个问题。
确保“从加密密码导入AES”不是“从加密密码导入AES”。

我找到了解决方案。问题可能是大小写敏感(在Windows上)

只需更改文件夹的名称:

  • C:\Python27\Lib\site packages\crypto
  • 收件人:
    C:\Python27\Lib\site packages\Crypto
这是安装pycrypto后文件夹的命名方式:

我已将其更改为:

现在以下代码可以正常工作:

我在Mac上也遇到了这个问题,它似乎与通过pip在pycrypto旁边安装了一个不幸的类似名称的“crypto”模块(不确定它的用途)有关

修复程序似乎正在使用pip删除crypto和pycrypto:

sudo pip uninstall crypto
sudo pip uninstall pycrypto
并重新安装pycrypto:

sudo pip install pycrypto
现在,当我执行以下操作时,它会按预期工作:

from Crypto.Cipher import AES

<>这个问题可以通过安装C++编译器(Python 27或Python 26)来修复。从Microsoft下载并重新运行命令:
pip install pycrypto
以在终止
easy\u install.exe的进程时运行gui web访问

sudo pip3 install pycrypto

卸载
crypto
pycrypto
对我有效。然后仅安装
pycrypto

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto

加载通过pip安装的python模块可能会出现问题。参考此答案并尝试以下操作

python -m pip install pycrypto

对于CentOS 7.4,我首先安装了pip,然后使用pip安装了pycrypto:

> sudo yum -y install python-pip 
> sudo python -m pip install pycrypto
为我工作(Ubuntu 17.10)

删除venv并使用python v3.6再次创建它

pip3 install PyJWT
sudo apt-get install build-essential libgmp3-dev python3-dev
pip3 install cryptography
pip3 install pycryptodome
pip3 install pycryptodomex

Pycrypto已弃用,有问题,使用Pycryptodome

到目前为止,我在从Crypto导入
时遇到了相同的问题。即使我已经安装/重新安装了几次Pycrypto,Cipher import AES
。最后,这是因为pip默认使用python3

~ pip --version
pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
使用pip2安装pycrypto可以解决此问题。

也许您应该: pycryptodome==3.6.1 将其添加到requirements.txt并安装,这将消除错误报告。
这对我有用

如果您使用macos,请将lib文件夹
lib/python3.7/site packages/crypto
重命名为
lib/python3.7/site packages/crypto
我支持3.7。在我尝试安装crypto之后,问题仍然存在。而pycrypto在我的情况下失败了。因此,最终我的构建通过以下包传递: pip安装pycryptodome

警告:不要再使用
crypto
pycrypto
! 如您所知,
pycrypto
的使用不再安全:

Pycrypto易受block_templace.c中ALGnew函数中基于堆的缓冲区溢出的攻击。它允许远程攻击者在python应用程序中执行任意代码。它被分配了号码

Pycrypto没有发布该漏洞的任何修复程序,自2014年6月20日以来,也没有对该项目做出任何承诺

更新2021-01-18:CVE现在已修复(感谢@SumitBadsara提供pointin
pip3 uninstall crypto 
pip3 uninstall pycrypto 
pip3 install pycryptodome
# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip

# install virtualenv
pip3 install virtualenv

# install and create a virtual environment in your target folder
mkdir target_folder
cd target_folder
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
pip install pycryptodome==3.4.3
pip uninstall crypto
pip uninstall pycryptodome
pip install pycryptodome
pip3 uninstall crypto
pip3 uninstall pycrypto