Wenn ich versuche, app.py (Python 3.3, PyCrypto 2.6) auszuführen, gibt meine virtuelle Umgebung immer wieder den oben aufgeführten Fehler zurück. Meine Importanweisung ist gerecht 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 hat funktioniert.
Unten sehen Sie, wie die Dateien für PyCrypto aussehen:
python
virtualenv
pip
easy-install
pycrypto
Graham Smith
quelle
quelle
ImportError
wird in angezeigt,python 2
währendpython 3
es istModuleNotFoundError
.python3 -c 'import foo'
ergibtImportError: No module named 'foo'
. Habe ich etwas verpasst?Antworten:
Ich hatte das gleiche Problem (allerdings unter Linux). Die Lösung war ganz einfach - hinzufügen:
zu meiner
app.yaml
Datei. Da dies in der Vergangenheit korrekt funktioniert hat, gehe ich davon aus, dass dies eine neue Anforderung ist.quelle
app.yaml
Datei?pycrypto
! Überprüfen Sie meine Antwort für eine bessere Lösung!Ich hatte das gleiche Problem auf meinem Mac bei der Installation mit
pip
. Ich habe es dann entferntpycrypto
und erneut installiert miteasy_install
:auch als Luke kommentierte: Wenn Sie Probleme beim Ausführen dieser Befehle haben, stellen Sie sicher, dass Sie sie als admin (sudo) ausführen.
Hoffe das hilft!
EDIT: Wie winklerr oben richtig bemerkt, ist pycrypto nicht mehr sicher. Verwenden Sie stattdessen pycryptodome, es ist ein Drop-In-Ersatz
quelle
Ich bin auch auf dem Mac darauf gestoßen, und es scheint damit zu tun zu haben, dass neben pycrypto via pip ein leider ähnlich benanntes "Crypto" -Modul (nicht sicher, wofür das ist) neben pycrypto installiert wurde.
Das Update scheint darin zu bestehen, sowohl Crypto als auch Pycrypto mit pip zu entfernen:
und Neuinstallation von pycrypto:
Jetzt funktioniert es wie erwartet, wenn ich so etwas mache wie:
quelle
Auf dem Mac ... wenn Sie darauf stoßen ... versuchen Sie zu sehen, ob Sie stattdessen Krypto importieren können?
Wenn ja .. der Paketname ist das Problem
C
vsc
. Um dies zu umgehen, fügen Sie diese Zeilen einfach oben in Ihr Skript ein.Sie wissen, dass Sie paramiko erfolgreich importieren können sollten.
quelle
Deinstallieren
crypto
undpycrypto
arbeitet an mir. Dann nur installierenpycrypto
:quelle
Ich habe die Lösung gefunden. Das Problem liegt wahrscheinlich in der Groß- und Kleinschreibung (unter Windows).
Ändern Sie einfach den Namen des Ordners:
C:\Python27\Lib\site-packages\crypto
C:\Python27\Lib\site-packages\Crypto
So wurde der Ordner nach der Installation von pycrypto benannt:
Ich habe es geändert in:
Und jetzt funktioniert der folgende Code einwandfrei:
quelle
Typ Befehl:
quelle
WARNUNG: Nicht mehr verwenden
pycrypto
!Wie Sie auf lesen dieser Seite , von der Nutzung
pycrypto
ist nicht mehr sicher:LÖSUNG: Verwenden Sie Python3 und
pycryptodome
!TL; DR:
pip3 install pycryptodome
Stellen Sie sicher, dass Sie andere Versionen von
crypto
oderpycrypto
zuerst deinstallieren .Einrichten einer neuen virtuellen Umgebung
Verwenden Sie die folgenden Befehle, um eine virtuelle Umgebung zu installieren und alles einzurichten:
Weitere Informationen finden Sie unter pycryptodome.org
quelle
Wenn Sie Redhat, Fedora, Centos verwenden:
sudo yum install pycrypto
Für meinen Fall konnte ich es nicht mit pip installieren
quelle
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 Python 2.7-Laufzeit ist pyCrypto 2.6 die vorgeschlagene Version. Die Lösung, die für mich funktioniert hat, war ...1) Laden Sie die pycrypto2.6-Quelle herunter und extrahieren Sie sie irgendwo (
~/Downloads/pycrypto26
)Beispiel: Git-Klon https://github.com/dlitz/pycrypto.git
2)
cd
(cd ~/Downloads/pycrypto26
) dann3) Führen Sie den folgenden Terminalbefehl im vorherigen Ordner aus, um pyCrypto 2.6 manuell im GAE-Ordner zu installieren.
quelle
Wenn Sie ein Macos sind, benennen Sie den lib-Ordner
lib/python3.7/site-packages/crypto
in umlib/python3.7/site-packages/Crypto
quelle
Versuchen Sie es mit pip3 :
quelle
Es könnte ein Problem beim Laden von Python-Modulen sein, die über pip installiert wurden. Siehe diese Antwort. Über pip installierte Python-Module können nicht aus dem Verzeichnis site-packages geladen und so etwas wie versucht werden
quelle
Arbeitete für mich (Ubuntu 17.10)
Venv entfernen und mit Python v3.6 erneut erstellen
Pycrypto ist veraltet, hatte Probleme damit, verwendet Pycryptodome
quelle
Ich löse dieses Problem, indem ich den Großbuchstaben in Großbuchstaben ändere. Stellen Sie sicher, dass '' aus Crypto.Cipher AES importiert '' nicht aus Crypto.Cipher importiert AES ''.
quelle
Für CentOS 7.4 habe ich zuerst pip und dann pycrypto mit pip installiert:
quelle
Bisher habe ich das gleiche Problem beim Importieren,
from Crypto.Cipher import AES
auch wenn ich pycrypto einige Male installiert / neu installiert habe. Am Ende liegt es daran, dass pip standardmäßig python3 verwendet.Die Installation von pycrypto mit pip2 sollte dieses Problem beheben.
quelle
Für Windows 7:
Ich habe diesen Fehler "Modulfehler Crypo.Cipher Import AES" erhalten
So installieren Sie Pycrypto unter Windows:
Versuchen Sie dies in der Eingabeaufforderung,
Setze path = C: \ Python27 \ Scripts (dh Pfad, in dem sich easy_install befindet)
Führen Sie dann Folgendes aus:
easy_install pycrypto
Für Ubuntu:
Versuche dies,
Laden Sie Pycrypto von " https://pypi.python.org/pypi/pycrypto " herunter "
Ändern Sie dann Ihren aktuellen Pfad mithilfe Ihres Terminals in den heruntergeladenen Pfad:
Beispiel: root @ xyz-virtual-machine: ~ / pycrypto-2.6.1 #
Führen Sie dann mit dem Terminal Folgendes aus:
python setup.py installieren
Es hat bei mir funktioniert. Hoffnung funktioniert für alle ..
quelle
Dieses Problem kann durch 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 erneut aus:
pip install pycrypto
Führen Sie den GUI-Webzugriff aus, wenn Sie den Vorgang beendeneasy_install.exe
.quelle
Vielleicht sollten Sie dies tun: pycryptodome == 3.6.1 fügen Sie es zu den Anforderungen.txt hinzu und installieren Sie es, wodurch der Fehlerbericht entfernt werden sollte. Für mich geht das!
quelle
Das hat bei mir funktioniert
quelle
Nun, das mag seltsam erscheinen, aber nach der Installation
pycrypto
oderpycryptodome
müssen wir den Verzeichnisnamencrypto
aufCrypto
in aktualisierenlib/site-packages
Referenz
quelle
Ich bin mit 3.7. Das Problem bleibt bestehen, nachdem ich versucht habe, Krypto zu installieren. Und Pycrypto schlägt in meinem Fall einfach fehl. Am Ende wurde mein Build über das folgende Paket übergeben: pip install pycryptodome
quelle