2

我对新的 python 2.7.10 完全感到困惑。

我已经从官方网站下载的 tar.xz 安装了 python 2.7.10。然后我将 /usr/local/bin/python2.7 与 /usr/bin/python2.7 和 /usr/bin/python 链接起来,但是当我尝试导入模块时,我得到ImportError: No module named "module_name" . 例如:

python -c "import gtk"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named gtk

但如果:

cd /usr/lib/python2.7/dist-packages/gtk-2.0/
python -c "import gtk"

我们得到:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "gtk/__init__.py", line 30, in <module>
    import gobject as _gobject
ImportError: No module named gobject

至此,gtk 模块导入成功。

让我们“cd ~”看看 sys.path:

python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
 '/usr/local/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/pip-7.1.0.dev0-py2.7.egg',
 '/usr/local/lib/python27.zip',
 '/usr/local/lib/python2.7',
 '/usr/local/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7/lib-tk',
 '/usr/local/lib/python2.7/lib-old',
 '/usr/local/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/site-packages']

好的,没有/usr/lib/python2.7/dist-packages,我们添加它:exportPYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7

现在:

python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
 '/usr/local/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg',
 '/usr/local/lib/python2.7/site-packages/pip-7.1.0.dev0-py2.7.egg',
 '/home/s-quark',
 '/usr/lib/python2.7/dist-packages',
 '/usr/lib/python2.7',
 '/usr/local/lib/python27.zip',
 '/usr/local/lib/python2.7',
 '/usr/local/lib/python2.7/plat-linux2',
 '/usr/local/lib/python2.7/lib-tk',
 '/usr/local/lib/python2.7/lib-old',
 '/usr/local/lib/python2.7/lib-dynload',
 '/usr/local/lib/python2.7/site-packages']

但它仍然找不到模块:

python -c "import gtk"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named gtk

我必须做什么?

4

1 回答 1

2

看来您有两个 python 版本。

默认版本通常链接到:

/usr/bin/python 

从 中可以看出which -a python,您的本地版本位于内部:

/usr/local/bin/python 

这与您的本地二进制文件相关联

/usr/bin/python 

pip install使用默认 python 安装包。这就是您无法从本地安装导入包的原因,即使包在您的$PYTHONPATH.

如果python -m pip install没有在您的本地版本上安装所需的软件包,请尝试创建一个虚拟环境(不要使用sudo

万一一切都失败了,或者你绝望了,安装一个干净的 Anaconda 并远离麻烦。

我希望这有效

于 2015-06-21T17:01:13.857 回答