ImportError:Crypto.Cipherという名前のモジュールがない

app.py (Python 3.3, PyCrypto 2.6) を実行しようとすると、virtualenvが上記のようなエラーを返し続けます。私のimport文は、from Crypto.Cipher import AESだけです。私は重複を探し、あなたはいくつかあると言うかもしれませんが、私は解決策を試してみました(ほとんどは解決策でもありませんが)、何も動作しませんでした。

PyCryptoのファイルがどのようなものか、下記で確認することができます。

![](http://i.imgur.com/ElrSw6L.png?1

質問へのコメント (7)

私のMacでは、pipでインストールしたときに同じ問題が発生しました。そこで、pycryptoを削除し、easy_installで再度インストールしたところ、このようになりました。

pip uninstall pycrypto
easy_install pycrypto

も、Lukeさんのコメント通りです。これらのコマンドの実行に問題がある場合は、必ず管理者 (sudo) として実行してください。

お役に立てれば幸いです。

EDIT: winklerrが上で正しく指摘しているように、pycryptoはもはや安全ではありません。代わりにpycryptodomeを使用してください。

解説 (13)

私もMacでこれに遭遇しましたが、残念ながら同様に名前が付けられた「クリプト」モジュール(それが何であるかはわかりません)がpipを介してピクリプトと一緒にインストールされていることに関連しているようです。

修正により、pip:でcryptoとpycryptoの両方を削除しているようです。

sudo pip uninstall crypto
sudo pip uninstall pycrypto

pycryptoを再インストール:

sudo pip install pycrypto

今、私が次のようなことをするとき、それは期待どおりに機能します。

from Crypto.Cipher import AES
解説 (2)
ソリューション

私も同じ問題がありました(Linuxですが)。解決策はとても簡単で、追加することでした。

libraries:
- name: pycrypto
  version: "2.6"

app.yaml ファイルに追加しました。これは過去に正しく機能したので、これは新しい要件だと思います。

解説 (6)

マックで。.. これに遭遇した場合。. 代わりに暗号をインポートできるかどうかを確認してください?

もしそうなら。. パッケージ名は「C」対「c」の問題です。 これを回避するため。. これらの行をスクリプトの上部に追加するだけです。

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

paramikoを正常にインポートできるはずです。

解説 (0)

タイプのコマンドを使用します。

sudo pip install pycrypto
解説 (3)

「クリプト」と「ピクリプト」のアンインストールは私に働きます。 次に、「pycrypto」のみをインストールします。

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto
解説 (2)

解決策を見つけました。問題はおそらくケース感度です(Windowsの場合)。

フォルダの名前を変更するだけです:

-C:\ Python27 \ Lib \ site-packages \ crypto。 -to: C:\ Python27 \ Lib \ site-packages \ Crypto

これは、pycryptoのインストール後にフォルダーが命名された方法です:。![ここに画像の説明を入力してください](http://i.stack.imgur.com/DfHD9.png。)

変更しました:。![ここに画像の説明を入力してください](http://i.stack.imgur.com/wqj8y.png。)

これで、次のコードで問題なく動作します。。![ここに画像の説明を入力してください](http://i.stack.imgur.com/iirOc.png。)

解説 (1)

OSX 10.8.5(マウンテンライオン)でGAEボイラープレートを備えたGoogleAppEngineLauncher(バージョン> 1.8.X)を使用して以来、「ImportError:Crypto.Cipherという名前のモジュールなし」という同じ問題が発生しました。 Python 2.7ランタイムを備えたGoogle App Engine SDKでは、pyCrypto 2.6が推奨バージョンです。 私のために働いた解決策はありました。..

1)pycrypto2.6ソース抽出物をどこかにダウンロードします( 〜/ダウンロード/ pycrypto26)。

例えば.、git clone https://github.com/dlitz/pycrypto.git

  1. 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
解説 (5)

redhat、fedora、centosを使用している場合:

sudo yum install pycrypto

私の場合、pipを使用してインストールすることはできません。

解説 (1)

警告:「pycrypto」はもう使用しないでください。!

このページで読むことができるように、「pycrypto」の使用は not 安全ではなくなりました。

Pycryptoは、block_templace.cのALGnew関数でのヒープベースのバッファオーバーフローに対して脆弱です。 リモート攻撃者がpythonアプリケーションで任意のコードを実行できるようにします。 CVE-2013-7459番号が割り当てられました。

Pycryptoはその脆弱性に対する修正をリリースせず、2014年6月20日以降、プロジェクトへのコミットはありませんでした。

ソリューション:Python3と「pycryptodome」を使用します。!

TL; DR: pip3 install pycryptodome

新しい仮想環境を設定します。

仮想環境をインストールしてすべてをセットアップするには、次のコマンドを使用します。

# 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を参照してください。

解説 (0)

pip3 :で試してください。

sudo pip3 install pycrypto
解説 (0)

私のために働いた(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を使用しました。

解説 (0)

これは、pipを介してインストールされたPythonモジュールのロードの問題である可能性があります。 この回答を参照してくださいhttps://stackoverflow.com/questions/25276329/cant-load-python-modules-installed-via-pip-from-site-packages-directoryなどを試してください。

python -m pip install pycrypto
解説 (0)

macosの場合は、libフォルダーの名前を「lib / python3.7 / site-packages / crypto」から「lib / python3.7 / site-packages / Crypto」に変更します。

解説 (0)

CentOS 7.4の場合、最初にpipをインストールし、次にpipを使用してpycryptoをインストールしました。

> sudo yum -y install python-pip 
> sudo python -m pip install pycrypto
解説 (0)

多分あなたはこれをすべきです: pycryptodome == 3.6.1。 それをrequirements.txtに追加してインストールすると、エラーレポートが削除されます。 それは私のために働きます。!

解説 (0)

この問題は、C ++コンパイラ(python27またはpython26)をインストールすることで修正できます。 Microsoft https://www.microsoft.com/en-us/download/details.aspxからダウンロードしてください?id = 44266およびコマンドを再実行します: easy_install.exeのプロセスを終了すると、 pip install pycryptoがgui Webアクセスを実行します。

解説 (0)

最初の文字のケースを上に変更して、この問題を解決します。 「暗号から。暗号はAESをインポートする」ではなく、「暗号から。暗号はAESをインポートする」ことを確認してください。

解説 (0)

Windows 7の場合:

このエラー「モジュールエラーCrypo.CipherインポートAES」を通過しました。

WindowsにPycryptoをインストールするには、

これをコマンドプロンプトで試してください。

path = 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インストール。

それは私のために働いた。 希望はすべてのために働きます。.

解説 (0)

今日まで、「Crypto.Cipher import AES」からインポートするときも、pycryptoを数回インストール/再インストールしても、同じ問題が発生します。 最終的には、pipがデフォルトでpython3になったためです。

。 〜pip --version。 / usr / local / lib / python3.7 / site-packages / pip(python 3.7)から18.0をピップします。

pycrypoをpip2でインストールすると、この問題が解決します。

解説 (0)