app.py (Python 3.3, PyCrypto 2.6) を実行しようとすると、virtualenvが上記のようなエラーを返し続けます。私のimport文は、from Crypto.Cipher import AES
だけです。私は重複を探し、あなたはいくつかあると言うかもしれませんが、私は解決策を試してみました(ほとんどは解決策でもありませんが)、何も動作しませんでした。
PyCryptoのファイルがどのようなものか、下記で確認することができます。
私のMacでは、pip
でインストールしたときに同じ問題が発生しました。そこで、pycrypto
を削除し、easy_install
で再度インストールしたところ、このようになりました。
pip uninstall pycrypto
easy_install pycrypto
も、Lukeさんのコメント通りです。これらのコマンドの実行に問題がある場合は、必ず管理者 (sudo) として実行してください。
お役に立てれば幸いです。
EDIT: winklerrが上で正しく指摘しているように、pycryptoはもはや安全ではありません。代わりにpycryptodomeを使用してください。
私もMacでこれに遭遇しましたが、残念ながら同様に名前が付けられた「クリプト」モジュール(それが何であるかはわかりません)がpipを介してピクリプトと一緒にインストールされていることに関連しているようです。
修正により、pip:でcryptoとpycryptoの両方を削除しているようです。
sudo pip uninstall crypto
sudo pip uninstall pycrypto
pycryptoを再インストール:
sudo pip install pycrypto
今、私が次のようなことをするとき、それは期待どおりに機能します。
from Crypto.Cipher import AES
私も同じ問題がありました(Linuxですが)。解決策はとても簡単で、追加することでした。
libraries:
- name: pycrypto
version: "2.6"
を app.yaml
ファイルに追加しました。これは過去に正しく機能したので、これは新しい要件だと思います。
「クリプト」と「ピクリプト」のアンインストールは私に働きます。 次に、「pycrypto」のみをインストールします。
pip uninstall crypto
pip uninstall pycrypto
pip install pycrypto
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を手動でインストールします。
sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine
このページで読むことができるように、「pycrypto」の使用は not 安全ではなくなりました。
Pycryptoは、block_templace.cのALGnew関数でのヒープベースのバッファオーバーフローに対して脆弱です。 リモート攻撃者がpythonアプリケーションで任意のコードを実行できるようにします。 CVE-2013-7459番号が割り当てられました。
Pycryptoはその脆弱性に対する修正をリリースせず、2014年6月20日以降、プロジェクトへのコミットはありませんでした。
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を参照してください。
私のために働いた(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を使用しました。
この問題は、C ++コンパイラ(python27またはpython26)をインストールすることで修正できます。 Microsoft https://www.microsoft.com/en-us/download/details.aspxからダウンロードしてください?id = 44266およびコマンドを再実行します: easy_install.exe
のプロセスを終了すると、 pip install pycrypto
がgui Webアクセスを実行します。
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でインストールすると、この問題が解決します。