ImportError:Crypto.Cipherという名前のモジュールがない
app.py (Python 3.3, PyCrypto 2.6) を実行しようとすると、virtualenvが上記のようなエラーを返し続けます。私のimport文は、from Crypto.Cipher import AES
だけです。私は重複を探し、あなたはいくつかあると言うかもしれませんが、私は解決策を試してみました(ほとんどは解決策でもありませんが)、何も動作しませんでした。
PyCryptoのファイルがどのようなものか、下記で確認することができます。
110
20
私のMacでは、
pip
でインストールしたときに同じ問題が発生しました。そこで、pycrypto
を削除し、easy_install
で再度インストールしたところ、このようになりました。も、Lukeさんのコメント通りです。これらのコマンドの実行に問題がある場合は、必ず管理者 (sudo) として実行してください。
お役に立てれば幸いです。
EDIT: winklerrが上で正しく指摘しているように、pycryptoはもはや安全ではありません。代わりにpycryptodomeを使用してください。
私もMacでこれに遭遇しましたが、残念ながら同様に名前が付けられた「クリプト」モジュール(それが何であるかはわかりません)がpipを介してピクリプトと一緒にインストールされていることに関連しているようです。
修正により、pip:でcryptoとpycryptoの両方を削除しているようです。
pycryptoを再インストール:
今、私が次のようなことをするとき、それは期待どおりに機能します。
私も同じ問題がありました(Linuxですが)。解決策はとても簡単で、追加することでした。
を
app.yaml
ファイルに追加しました。これは過去に正しく機能したので、これは新しい要件だと思います。マックで。.. これに遭遇した場合。. 代わりに暗号をインポートできるかどうかを確認してください?
もしそうなら。. パッケージ名は「C」対「c」の問題です。 これを回避するため。. これらの行をスクリプトの上部に追加するだけです。
paramikoを正常にインポートできるはずです。
タイプのコマンドを使用します。
「クリプト」と「ピクリプト」のアンインストールは私に働きます。 次に、「pycrypto」のみをインストールします。
解決策を見つけました。問題はおそらくケース感度です(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。)。
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。
cd
(cd〜/ Downloads / pycrypto26
)次に。3)前のフォルダー内で次のターミナルコマンドを実行して、GAEフォルダーにpyCrypto 2.6を手動でインストールします。
redhat、fedora、centosを使用している場合:
sudo yum install pycrypto
。私の場合、pipを使用してインストールすることはできません。
警告:「pycrypto」はもう使用しないでください。!
このページで読むことができるように、「pycrypto」の使用は not 安全ではなくなりました。
ソリューション:Python3と「pycryptodome」を使用します。!
TL; DR:
pip3 install pycryptodome
。新しい仮想環境を設定します。
仮想環境をインストールしてすべてをセットアップするには、次のコマンドを使用します。
詳細については、pycryptodome.orgを参照してください。
pip3 :で試してください。
私のために働いた(Ubuntu 17.10)。
venvを削除し、python v3.6で再度作成します。
Pycryptoは非推奨で、問題があり、Pycryptodomeを使用しました。
これは、pipを介してインストールされたPythonモジュールのロードの問題である可能性があります。 この回答を参照してくださいhttps://stackoverflow.com/questions/25276329/cant-load-python-modules-installed-via-pip-from-site-packages-directoryなどを試してください。
macosの場合は、libフォルダーの名前を「lib / python3.7 / site-packages / crypto」から「lib / python3.7 / site-packages / Crypto」に変更します。
CentOS 7.4の場合、最初にpipをインストールし、次にpipを使用してpycryptoをインストールしました。
多分あなたはこれをすべきです: pycryptodome == 3.6.1。 それをrequirements.txtに追加してインストールすると、エラーレポートが削除されます。 それは私のために働きます。!
この問題は、C ++コンパイラ(python27またはpython26)をインストールすることで修正できます。 Microsoft https://www.microsoft.com/en-us/download/details.aspxからダウンロードしてください?id = 44266およびコマンドを再実行します:
easy_install.exe
のプロセスを終了すると、pip install pycrypto
がgui Webアクセスを実行します。最初の文字のケースを上に変更して、この問題を解決します。 「暗号から。暗号はAESをインポートする」ではなく、「暗号から。暗号はAESをインポートする」ことを確認してください。
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インストール。
それは私のために働いた。 希望はすべてのために働きます。.
今日まで、「Crypto.Cipher import AES」からインポートするときも、pycryptoを数回インストール/再インストールしても、同じ問題が発生します。 最終的には、pipがデフォルトでpython3になったためです。
。 〜pip --version。 / usr / local / lib / python3.7 / site-packages / pip(python 3.7)から18.0をピップします。
。pycrypoをpip2でインストールすると、この問題が解決します。