Возникло исключение ImportError при попытке использовать Fabric

Я использую Ubuntu и virtualenv, и у меня постоянно возникает эта проблема, когда я пытаюсь использовать Fabric для создания сценария развертывания. Fabric зависит от paramiko, который зависит от PyCrypto.

Каждый раз, когда я пытаюсь использовать Fabric или PyCrypto напрямую, я получаю эту ошибку:

ImportError: cannot import name Random

Я попытался переустановить с помощью pip install -U PyCrypto. Я также пытался установить пакеты python-crypto и python-crypto-dbg с помощью Aptitude, но безрезультатно. Я все еще получаю ту же ошибку. У кого-нибудь есть идеи, которые могут помочь мне решить эту проблему? Заранее спасибо!


person tommytwoeyes    schedule 29.07.2011    source источник
comment
Предоставьте полную трассировку, пожалуйста.   -  person Will McCutchen    schedule 29.07.2011


Ответы (2)


Возможно, в вашем каталоге, из которого вы запускаете Fabric, возникает конфликт имен файлов. У вас есть файл с именем Crypto.py в вашем проекте?

Можете ли вы заставить Crypto.Random импортировать из-за пределов каталога вашего проекта? (но все еще используя ваш virtualenv. Ipython здесь очень помогает.)

person ralfonso    schedule 29.07.2011
comment
Это хорошее предложение. Я рекурсивно использовал ls для этого, но единственные файлы с Crypto в имени находятся в самом пакете PyCrypto и в яйце PyCrypto. Я не уверен, как можно было бы импортировать что-либо из-за пределов каталога проекта virtualenv, все еще используя файл virtualenv. Как это сработает? - person tommytwoeyes; 29.07.2011
comment
Я попытался активировать virtualenv из iPython, затем cd'ing из каталога проекта и импортировать туда Crypto.Random. Тем не менее, это не сработало. Я получаю ту же ошибку. Я могу импортировать Crypto, но все еще получаю сообщение ImportError, в котором говорится: «Невозможно импортировать случайное имя». - person tommytwoeyes; 01.08.2011

У меня была такая же проблема в прошлом, когда я использовал Ubuntu. У меня больше нет доступной установки Ubuntu, но на моей старой машине 10.04 файл Random в каталоге Crypto отсутствовал. Убедитесь, что он существует, если это не так, это проблема.

person Perkins    schedule 03.01.2012