Fabric: ImportError: ningún módulo llamado Crypto

Creado en 29 abr. 2016  ·  3Comentarios  ·  Fuente: fabric/fabric

Hola,

Tengo un proyecto privado que depende de la tela. Específicamente, fijamos fabric==1.10.2 .

Hoy, las compilaciones de este proyecto han comenzado a fallar misteriosamente con el siguiente seguimiento de pila:

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

La tela ha estado sujeta a la misma versión durante semanas. La instalación manual de pycrypto junto con la tela resuelve este problema.

A pesar de importar explícitamente Crypto.Random , la única dependencia de fabric es no se hace referencia a pycrypto en

En mi opinión, si está importando símbolos pycrypto explícitamente dentro de la tela, pycrypto debe citarse como una dependencia dentro de setup.py .

¡Gracias!

Comentario más útil

Paramiko 2.0 se lanzó recientemente (y creo que depende de cryptography lugar de pycrypto ). La versión 1.10.2 de setup.py no restringe adecuadamente la versión de paramiko, pero la versión 1.10.3 sí. Quizás la actualización a la versión 1.10.3 ayude.

Parece que esto se cambió en c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Todos 3 comentarios

Paramiko 2.0 se lanzó recientemente (y creo que depende de cryptography lugar de pycrypto ). La versión 1.10.2 de setup.py no restringe adecuadamente la versión de paramiko, pero la versión 1.10.3 sí. Quizás la actualización a la versión 1.10.3 ayude.

Parece que esto se cambió en c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Puede confirmar que subir a 1.11.1 ha solucionado este problema. Me pregunto por qué 1.10.2 decidió romper hoy ...

@jamesob, ¿ se desencadenó esto al reinstalar Fabric en un nuevo entorno? Como señaló @gtback , paramiko cambió recientemente y publicamos versiones anteriores de Fab que pin a paramiko <2 para evitar este tipo de cosas. No estabas en uno de esos, lo que probablemente sea la razón por la que se rompieron las cosas.

Dicho esto, no me di cuenta de que estábamos importando Crypto directamente en cualquier lugar; Solo miré y sí, tuvimos que hacer algunos ajustes tontos para lidiar con una peculiaridad de paralelización de PyCrypto +. Eso tendrá que cambiar si alguna vez deshacemos el pin de la versión de Paramiko (lo que probablemente me gustaría hacer en algún momento, una vez que estemos seguros de que paramiko 2 es estable). Entonces, gracias por sacar a la luz esto :)

¿Fue útil esta página
0 / 5 - 0 calificaciones