sys.path和modules - Python3.2

时间:2012-07-16 13:57:42

标签: python python-3.x paramiko

我编译了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模块在我的路径上,为什么会出错?

3 个答案:

答案 0 :(得分:0)

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

还有更多内容,请查看http://docs.python.org/tutorial/modules.html

此外,请看一下这个(已关闭)的问题: Is Paramiko going to be ported over to Python 3.x?

以及此帖子https://github.com/paramiko/paramiko/issues/16

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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