我用
安装了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
?
答案 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。