Wenn ich versuche, app.py (Python 3.3, PyCrypto 2.6) auszuführen, meldet meine virtualenv den oben aufgelisteten Fehler. Meine Importaussage ist nur from Crypto.Cipher import AES
. Ich habe nach Duplikaten gesucht und man könnte sagen, dass es einige gibt, aber ich habe die Lösungen ausprobiert (obwohl die meisten nicht einmal Lösungen sind) und nichts funktioniert.
Nachfolgend sehen Sie, wie die Dateien für PyCrypto aussehen:
Ich hatte das gleiche Problem (allerdings unter Linux). Die Lösung war ziemlich einfach - fügen Sie hinzu:
libraries:
- name: pycrypto
version: "2.6"
in meine app.yaml-Datei. Da dies in der Vergangenheit richtig funktioniert hat, gehe ich davon aus, dass dies eine neue Anforderung ist.
Bei der Installation mit pip
hatte ich auf meinem Mac dasselbe Problem. Ich entfernte dann pycrypto
und installierte es erneut mit easy_install
wie folgt:
pip uninstall pycrypto
easy_install pycrypto
auch als Lukas kommentierte: Wenn Sie Probleme haben, diese Befehle auszuführen, führen Sie sie als Admin aus (Sudo).
Hoffe das hilft!
Ich habe dies auch auf dem Mac gemacht, und es scheint damit zu tun zu haben, dass ich ein unglücklicherweise gleich benanntes "Crypto" -Modul (nicht sicher, was dafür ist) neben pycrypto via pip installiert hat.
Der Fix scheint das Entfernen von Crypto und Pycrypto mit Pip zu sein:
Sudo pip uninstall crypto
Sudo pip uninstall pycrypto
und pycrypto erneut installieren:
Sudo pip install pycrypto
Jetzt funktioniert es wie erwartet, wenn ich so etwas mache:
from Crypto.Cipher import AES
Auf dem Mac ... wenn Sie auf dieses Thema stoßen ... versuchen Sie zu sehen, ob Sie stattdessen Krypto importieren können?
Wenn ja, ist der Paketname das Problem C
vs. c
. Um dies zu umgehen, fügen Sie diese Zeilen einfach oben in Ihr Skript ein.
import crypto
import sys
sys.modules['Crypto'] = crypto
Sie sollten Paramiko erfolgreich importieren können.
typ Befehl:
Sudo pip install pycrypto
Die Deinstallation von crypto
und pycrypto
funktioniert bei mir. Dann nur noch pycrypto
installieren:
pip uninstall crypto
pip uninstall pycrypto
pip install pycrypto
Ich hatte das gleiche Problem 'ImportError: No module named Crypto.Cipher'
, seit ich GoogleAppEngineLauncher (Version> 1.8.X) mit GAE Boilerplate unter OSX 10.8.5 (Mountain Lion) verwendet habe. In Google App Engine SDK mit der Laufzeitumgebung python 2.7 ist pyCrypto 2.6 die empfohlene Version. Die Lösung, die für mich funktionierte, war ...
1) Download pycrypto2.6 source extrahiere es irgendwo (~/Downloads/pycrypto26
)
z. B. git clone https://github.com/dlitz/pycrypto.git
2) cd
(cd ~/Downloads/pycrypto26
) dann
3) Führen Sie den folgenden Terminalbefehl im vorherigen Ordner aus, um pyCrypto 2.6 manuell im GAE-Ordner zu installieren.
Sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine
wenn Sie Redhat, Fedora, Centos verwenden:
Sudo yum install pycrypto
für meinen Fall kann ich es nicht mit pip installieren
Versuchen Sie es mit pip3 :
Sudo pip3 install pycrypto
Es könnte ein Problem beim Laden von Python-Modulen sein, die über Pip installiert wurden. Siehe diese Antwort Python-Module, die über pip aus dem Site-Packages-Verzeichnis installiert wurden, können nicht geladen werden und versuchen Sie es mit etwas
python -m pip install pycrypto
Für CentOS 7.4 habe ich zuerst pip und dann pycrypto mit pip installiert:
> Sudo yum -y install python-pip
> Sudo python -m pip install pycrypto
Ich löse dieses Problem, indem Sie die Groß-/Kleinschreibung in "upper ..__" ändern. Stellen Sie sicher, dass "" von Crypto.Cipher AES "" nicht "" von Crypto.Cipher "AES" importiert wird.
Arbeitete für mich (Ubuntu 17.10)
Venv entfernen und mit python v3.6 neu erstellen
pip3 install PyJWT
Sudo apt-get install build-essential libgmp3-dev python3-dev
pip3 install cryptography
pip3 install pycryptodome
pip3 install pycryptodomex
Pycrypto ist veraltet, hatte Probleme damit, benutzte Pycryptodome
Bis heute habe ich dasselbe Problem beim Importieren von from Crypto.Cipher import AES
, obwohl ich pycrypto ein paar Mal installiert bzw. neu installiert habe. Am Ende ist es, weil pip standardmäßig auf python3 gesetzt ist.
~ pip --version
pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
durch die Installation von pycrypo mit pip2 sollte dieses Problem gelöst werden.
Dieses Problem kann durch die Installation des C++ - Compilers (Python27 oder Python26) behoben werden. Laden Sie es von Microsoft https://www.Microsoft.com/en-us/download/details.aspx?id=44266 herunter und führen Sie den Befehl: pip install pycrypto
erneut aus, um den GUI-Webzugriff auszuführen, wenn Sie den Prozess beenden von easy_install.exe
.
Für Windows 7:
Ich habe diesen Fehler "Modulfehler Crypo.Cipher import AES" erhalten
Um Pycrypto unter Windows zu installieren,
Versuchen Sie dies in der Eingabeaufforderung,
Set path = C:\Python27\Scripts (d. H. Pfad, in dem sich easy_install befindet)
Dann führe folgendes aus:
easy_install pycrypto
Für Ubuntu:
Versuche dies,
Laden Sie Pycrypto von " https://pypi.python.org/pypi/pycrypto " herunter.
Dann ändern Sie Ihren aktuellen Pfad in den heruntergeladenen Pfad mit Ihrem Terminal:
Beispiel: root @ xyz-virtual-machine: ~/pycrypto-2.6.1 #
Führen Sie dann Folgendes über das Terminal aus:
python setup.py installieren
Es hat für mich gearbeitet. Hoffnung klappt für alle ..
Wenn Sie ein Mac sind, benennen Sie den Ordner lib lib/python3.7/site-packages/crypto
in lib/python3.7/site-packages/Crypto
um.
Ich bin mit 3.7. Das Problem bleibt bestehen, nachdem ich versucht habe, Crypto zu installieren. Und Pycrypto schlägt in meinem Fall einfach fehl. Am Ende ging mein Build über das folgende Paket: pip install pycryptodome
Vielleicht sollten Sie Folgendes tun: Pycryptodome == 3.6.1 Fügen Sie es zu Requirements.txt hinzu und installieren Sie es, was den Fehlerbericht beseitigen soll Es funktioniert für mich!