ImportError:没有名为transport的模块(Paramiko,Python 3.2.5)

时间:2013-08-12 03:27:21

标签: python-3.x importerror paramiko

我用

安装了PyCrypto和Paramiko(在各自的目录中)
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

1 个答案:

答案 0 :(得分:2)

似乎Paramiko正在尝试相对导入,这在Python 3中不再以此形式识别。见the changes in Python 3。 Paramiko中的import语句应该是

之一
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。两者都不是首选。

您在运行2to3之前是否运行了python3 setup.py install工具?我不确定这是否会解决这个问题,因为该工具可能无法区分相对或绝对导入的方式。

请检查Paramiko论坛(如果有)并提交针对Paramiko的错误,以便兼容Python 3。

修改

您似乎已经file a bug report