Fabric: ImportError: нет модуля с именем Crypto

Созданный на 29 апр. 2016  ·  3Комментарии  ·  Источник: fabric/fabric

Всем привет,

У меня есть частный проект, который зависит от ткани. Конкретно закрепляем fabric==1.10.2 .

Сегодня сборки этого проекта начали загадочно давать сбой со следующей трассировкой стека:

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

Ткань была прикреплена к одной и той же версии в течение нескольких недель. Установка pycrypto вместе с фабрикой вручную решает эту проблему.

Несмотря на явный импорт Crypto.Random , единственная зависимость Fabric - это нигде не упоминается, кроме документации paramiko.

ИМО, если вы явно импортируете символы pycrypto в структуру, pycrypto следует указывать как зависимость внутри setup.py .

Спасибо!

Самый полезный комментарий

Недавно был выпущен Paramiko 2.0 (и я думаю, зависит от cryptography а не от pycrypto ). Версия setup.py 1.10.2 не ограничивает должным образом версию paramiko, но версия 1.10.3 ограничивает. Возможно, обновление до 1.10.3 поможет.

Похоже, это было изменено в c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Все 3 Комментарий

Недавно был выпущен Paramiko 2.0 (и я думаю, зависит от cryptography а не от pycrypto ). Версия setup.py 1.10.2 не ограничивает должным образом версию paramiko, но версия 1.10.3 ограничивает. Возможно, обновление до 1.10.3 поможет.

Похоже, это было изменено в c7d3034b5f217f2b4e7989f2c8e9bbea335be270

Можно подтвердить, что переход на 1.11.1 устранил эту проблему. Интересно, почему 1.10.2 решил сегодня сломаться ...

@jamesob Это было вызвано переустановкой Fabric в новой среде? Как отметил @gtback , paramiko недавно изменился, и мы выпустили более ранние выпуски Fab, которые закрепляют paramiko <2, чтобы избежать подобных вещей. Вы не были на одном из них, что, вероятно, и привело к поломке.

Тем не менее, я не понимал, что мы куда-то напрямую импортировали криптовалюту; просто посмотрел, и да, нам пришлось сделать некоторую глупую настройку, чтобы справиться с причудой распараллеливания PyCrypto +. Это должно измениться, если мы когда-нибудь отменим вывод версии Paramiko (что, вероятно, я хотел бы сделать когда-нибудь, когда мы убедимся, что paramiko 2 стабилен). Итак, спасибо, что вспомнили об этом :)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги