Fabric: ImportError: Kein Modul namens Crypto

Erstellt am 29. Apr. 2016  ·  3Kommentare  ·  Quelle: fabric/fabric

Hi,

Ich habe ein privates Projekt, das vom Stoff abhängt. Konkret pinnen wir fabric==1.10.2 .

Heute sind Builds dieses Projekts mit dem folgenden Stacktrace auf mysteriöse Weise fehlgeschlagen:

19:22:54.233     from fabric import api as fabric_api
19:22:54.233   File "/home/go/work/pipelines/make-ci-00/code/.venv/local/lib/python2.7/site-packages/fabric/api.py", line 11, in <module>
19:22:54.233     from fabric.decorators import (hosts, roles, runs_once, with_settings, task,
19:22:54.233   File "/home/go/work/pipelines/make-ci-00/code/.venv/local/lib/python2.7/site-packages/fabric/decorators.py", line 9, in <module>
19:22:54.233     from Crypto import Random
19:22:54.233 ImportError: No module named Crypto

Fabric ist seit Wochen an dieselbe Version gepinnt. Die manuelle Installation von pycrypto neben Fabric behebt dieses Problem.

Obwohl Crypto.Random explizit importiert wird , ist die einzige Abhängigkeit von Fabric paramiko , und pycrypto wird nirgendwo außer paramiko docs referenziert.

IMO wenn Sie pycrypto Symbole explizit in Fabric importieren, sollte pycrypto als Abhängigkeit innerhalb von setup.py .

Vielen Dank!

Hilfreichster Kommentar

Paramiko 2.0 wurde kürzlich veröffentlicht (und ich denke, es hängt von cryptography und nicht von pycrypto ). Die Version 1.10.2 von setup.py schränkt die Version von paramiko nicht richtig ein, aber die Version 1.10.3 tut dies. Vielleicht hilft ein Upgrade auf 1.10.3.

Anscheinend wurde dies in c7d3034b5f217f2b4e7989f2c8e9bbea335be270 geändert

Alle 3 Kommentare

Paramiko 2.0 wurde kürzlich veröffentlicht (und ich denke, es hängt von cryptography und nicht von pycrypto ). Die Version 1.10.2 von setup.py schränkt die Version von paramiko nicht richtig ein, aber die Version 1.10.3 tut dies. Vielleicht hilft ein Upgrade auf 1.10.3.

Anscheinend wurde dies in c7d3034b5f217f2b4e7989f2c8e9bbea335be270 geändert

Kann bestätigen, dass das Anstoßen auf 1.11.1 dieses Problem behoben hat. Ich frage mich, warum 1.10.2 beschlossen hat, zu brechen...

@jamesob wurde dies durch die Neuinstallation von Fabric in einer neuen Umgebung ausgelöst? Wie @gtback bemerkte, hat sich Paramiko kürzlich geändert und wir haben frühere Fab-Releases herausgebracht, die an paramiko <2 hängen, um so etwas zu vermeiden. Sie waren nicht auf einer von denen, was wahrscheinlich der Grund ist, warum die Dinge kaputt gegangen sind.

Ich wusste jedoch nicht, dass wir Crypto direkt irgendwohin importierten; habe gerade nachgesehen und ja, wir mussten ein paar dumme Optimierungen vornehmen, um mit einer PyCrypto + Parallelisierungs-Eigenart umzugehen. Das wird sich ändern müssen, wenn wir den Pin der Paramiko-Version jemals rückgängig machen (was ich wahrscheinlich irgendwann tun möchte, sobald wir sicher sind, dass Paramiko 2 stabil ist). Also, danke fürs Auftauchen :)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen