Fabric: ImportError : aucun module nommé Crypto

Créé le 29 avr. 2016  ·  3Commentaires  ·  Source: fabric/fabric

Salut,

J'ai un projet privé qui dépend du tissu. Plus précisément, nous épinglons fabric==1.10.2 .

Aujourd'hui, les versions de ce projet ont commencé à échouer mystérieusement avec le stacktrace suivant :

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

Le tissu a été épinglé sur la même version pendant des semaines. L'installation manuelle de pycrypto avec Fabric résout ce problème.

Malgré l'importation explicite de Crypto.Random , la seule dépendance de fabric est paramiko , et pycrypto n'est référencé nulle part en dehors des documents paramiko.

IMO si vous importez des symboles pycrypto explicitement dans Fabric, pycrypto doit être cité comme une dépendance dans setup.py .

Merci!

Commentaire le plus utile

Paramiko 2.0 est sorti récemment (et je pense que cela dépend de cryptography plutôt que de pycrypto ). La version 1.10.2 de setup.py ne restreint pas correctement la version de paramiko, mais la version 1.10.3 le fait. Peut-être que la mise à niveau vers 1.10.3 vous aidera.

On dirait que cela a été modifié dans c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Tous les 3 commentaires

Paramiko 2.0 est sorti récemment (et je pense que cela dépend de cryptography plutôt que de pycrypto ). La version 1.10.2 de setup.py ne restreint pas correctement la version de paramiko, mais la version 1.10.3 le fait. Peut-être que la mise à niveau vers 1.10.3 vous aidera.

On dirait que cela a été modifié dans c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Peut confirmer que le fait de passer à 1.11.1 a résolu ce problème. Je me demande pourquoi 1.10.2 décidé de rompre aujourd'hui...

@jamesob a- @gtback l'a noté, paramiko a changé récemment et nous avons publié des versions antérieures de Fab qui épinglent à paramiko<2 pour éviter ce genre de chose. Vous n'étiez pas sur l'un de ceux-là, ce qui est probablement la raison pour laquelle les choses se sont cassées.

Cela dit, je n'avais pas réalisé que nous importions directement Crypto n'importe où; juste regardé et oui, nous avons dû faire quelques ajustements stupides pour faire face à une bizarrerie de parallélisation PyCrypto +. Cela devra changer si jamais nous annulons la broche de la version Paramiko (ce que j'aimerais faire probablement un jour, une fois que nous serons sûrs que paramiko 2 est stable). Alors, merci d'avoir refait surface :)

Cette page vous a été utile?
0 / 5 - 0 notes