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!
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 :)
Commentaire le plus utile
Paramiko 2.0 est sorti récemment (et je pense que cela dépend de
cryptography
plutôt que depycrypto
). 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