2013-08-12 2 views
2

Я установил PyCrypto и Paramiko (в соответствующих каталогах) сImportError: Нет модуль с именем транспорта (Paramiko, Python 3.2.5)

python3 setup.py install 

и оба были успешно установлены. Однако, когда я пытаюсь

import paramiko 

в 3.2.5 переводчика, я получаю эту ошибку:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/paramiko/__init__.py", line 64, in <module> 
    from transport import SecurityOptions, Transport 
ImportError: No module named transport 

Я понятия не имею, почему это это делает, как я проверил в папке и модуль transport.py здесь. Почему есть ImportError?

+0

Hersh: как вы решили проблему? Я получаю ту же ошибку с paramiko 1.7.5 python 3.3 .... – nish

+1

Я думаю, что ниже ответ заслуживает того, чтобы его приняли. –

ответ

2

Похоже, что Paramiko пытается относительный импорт, который больше не распознается в этой форме на Python 3. См. the changes in Python 3. операторы импорта в Paramiko должен быть один из

from .transport import SecurityOptions, Transport 

(обратите внимание на точку в начале), или

from paramiko.transport import SecurityOptions, Transport 

Вы можете либо исправить исходный paramiko код, или в качестве обходного пути, вы можете добавить /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/paramiko на ваш PYTHONPATH. Ни один из них не является предпочтительным.

Перед запуском python3 setup.py install вы запустили инструмент 2to3? Я не уверен, что это исправит это, поскольку инструмент, вероятно, не может отличить относительный или абсолютный импорт от того, как он используется здесь.

Выполняйте проверку на форумах Paramiko (если есть) и сообщите об ошибке для совместимости с Paramiko для Python 3.

Редактировать

Похоже, вы уже сделали file a bug report.

Смежные вопросы