【发布时间】:2015-09-06 22:14:36
【问题描述】:
我对新的 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
我必须做什么?
【问题讨论】:
-
看来您在所有列表中都缺少
gtk-2.0路径,仅仅因为您拥有dist-packages并不意味着您拥有子目录:) 无论如何,我建议您重新开始并使用一个打包管理器,用于处理 Python 和库的安装。 -
@ilciavo,是的,我有。 @Wolph,@ilciavo,我也有这个问题。当我尝试时:
sudo pip install PyGTK我得到:No matching distribution found for PyGTK然后当我尝试在依赖项中使用 gtk 时:sudo pip install pygtk-shell我得到:` import gtk ImportError: No module named gtk ------------ ---------------------------- 命令“python setup.py egg_info”在/tmp/pip-build-y3ju0c 中失败,错误代码为1 /pygtk-shell` -
@NULL 看来您的系统中有不同的python 版本。
which -a python之后你会得到什么?他们不建议使用sudo pip install而是创建一个虚拟环境。之后使用python -m pip install确保您使用虚拟环境。一般远离sudo -
@NULL 此外,如果您安装新的 python 版本,请使用不同的别名来单独保留版本并像
alias pythonA='$HOME/anaconda/bin/python中的alias pythonA='$HOME/anaconda/bin/python一样干净。然后你就可以用pythonA -m pip install安装所有东西,避免弄乱你的系统。
标签: python import path pythonpath sys.path