4

我安装了 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

4

1 回答 1

2

看来 Paramiko 正在尝试相对导入,在 Python 3 中不再以这种形式识别。请参阅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. 两者都不是优选的。

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

一定要检查 Paramiko 论坛(如果有的话)并提交一个针对 Paramiko 的错误,以实现 Python 3 的兼容性。

编辑

看来您已经提交了错误报告

于 2013-08-12T08:20:37.600 回答