Python 找不到设置了 PYTHONPATH 的模块

标签 python import path pythonpath sys.path

我对新的 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 “模块名称”。例如:

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,我们来添加一下: 导出PYTHONPATH=$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

我必须做什么?

最佳答案

看来你有两个Python版本。

默认版本通常链接到:

/usr/bin/python 

正如您从 which -a python 中看到的,您的本地版本位于其中:

/usr/local/bin/python 

这与您的本地二进制文件链接

/usr/bin/python 

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

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

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

我希望这能起作用

关于Python 找不到设置了 PYTHONPATH 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30963386/

相关文章:

typescript - 无法导入 CSS/SCSS 模块。 typescript 说 "Cannot Find Module"

path - 什么是连接任意数量的组件以在 Rust 中构建路径的宏?

linux - 如何将搜索路径添加到 "which"中?

python - 我似乎无法使用此功能将列表添加在一起

python - 如何在 Python 中构建列表中元素出现索引的字典?

python - 如何使用所有CPU对大文件列表进行子处理?

java - 使用 Path 类在 Java 中的两个路径之间创建路径

python - 如何在递归期间创建和编辑列表?

json - 使用 -jsonArray 时 mongoimport 的速度非常慢

java - 如何导入 LibGdx 示例项目