0

我编译了 Python 3.2 并尝试运行以下脚本:

#/opt/python3/bin/python3
import sys
sys.path.append('/usr/lib/python2.4/site-packages')
print(sys.path)
import os
import paramiko

输出是:

['/home/web.script/scripts/radar_python', '/opt/python3/lib/python32.zip', '/opt/python3/lib/python3.2', '/opt/python3/lib/python3.2/plat-linux2', '/opt/python3/lib/python3.2/lib-dynload', '/opt/python3/lib/python3.2/site-packages', '/usr/lib/python2.4/site-packages']
Traceback (most recent call last):
  File "./check_log_radar2.py", line 6, in <module>
    import paramiko
ImportError: No module named paramiko

ls 命令显示:

ls /usr/lib/python2.4/site-packages

Alacarte
cracklibmodule.so
dogtail
easy-install.pth
easy_install.py
easy_install.pyc
easy_install.pyo
elementtree
GMenuSimpleEditor
gmenu.so
iniparse
invest
libsvn
paramiko-1.7.5-py2.4.egg
paramiko-1.7.7.2-py2.4.egg
pirut
pkg_resources.py
pkg_resources.pyc
pkg_resources.pyo
pycrypto-2.6-py2.4-linux-x86_64.egg
rpmUtils
setroubleshoot
setuptools
setuptools-0.6c5-py2.4.egg-info
site.py
site.pyc
site.pyo
sos
svn
urlgrabber
yum

如果 paramiko 模块在我的路径上,为什么会出现错误?

4

3 回答 3

0

简短的回答是 Python 在 python 路径目录中搜索名为 paramiko 的目录,其中包含一个__init__.py文件,或者一个paramiko.py文件。都不存在。

还有更多,看看这里http://docs.python.org/tutorial/modules.html

另外,看看这个(封闭的)问题: Paramiko 是否会被移植到 Python 3.x?

以及这个线程https://github.com/paramiko/paramiko/issues/16

于 2012-07-16T14:31:07.873 回答
0

你的路径上没有 paramiko 模块,你的路径上有 paramiko 鸡蛋!setuptools 使一些魔法允许访问鸡蛋,但这仅适用于它实际安装的 python。如果你想让它工作您必须将包含模块的鸡蛋中的路径添加到您的 sys.path 中。但显然最好将 paramiko 安装到您的 pyton3 中或使用 virtualenv。

于 2012-07-16T14:33:20.243 回答
0

正在向我们ls展示 Python 2.4 安装,但您的脚本正在运行 3.您的 Python 3 站点包中有什么?

于 2012-07-19T21:20:51.030 回答