尽管已安装 Python 模块,但未检测到它们
Posted
技术标签:
【中文标题】尽管已安装 Python 模块,但未检测到它们【英文标题】:Python modules not being detected although they are installed 【发布时间】:2016-07-20 02:45:41 【问题描述】:我有一个旧版本的 Python。然后我卸载了旧版本,并安装了一个新版本 - 2.7.9。
我通过pyenv
将 2.7.9 设置为我的全局版本,但我的所有模块都没有被检测到。它们是在升级之前安装的。现在我卸载它们并重新安装但仍然无法正常工作......
~/Projects/development$ python
Python 2.7.9 (default, Mar 3 2016, 16:42:45)
[GCC 4.6.3] on linux2
>>> from github import Github
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named github
他们已经在python升级后重新安装了!尝试再次安装它们,要求已经满足错误。
~/Projects/development$ pip install PyGithub
Requirement already satisfied (use --upgrade to upgrade): PyGithub in /usr/local/lib/python2.7/dist-packages
Cleaning up...
我能做什么?
~/Projects/development$ pyenv versions
system
* 2.7.9 (set by /home/user/.pyenv/version)
~/Projects/development$ python
Python 2.7.9 (default, Mar 3 2016, 16:42:45)
[GCC 4.6.3] on linux2
>>> sys.executable
'/usr/local/bin/python'
>>> sys.exec_prefix
'/usr/local'
>>> print '\n'.join(sys.path)
/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
which pip
给出/usr/bin/pip
。
【问题讨论】:
你能去 pip 说它已经安装到的文件夹,看看里面有什么吗?您可能需要卸载并重新安装模块。 我已经安装并重新安装... 通过查看目录来检查旧的python是否真的消失了。还要检查which pip
以确保它是新版本。检查您的$PATH
和$PYTHONPATH
是否不包含旧目录名称。
查看更新的答案
【参考方案1】:
我发现了问题。
dist-packages 与 site-packages。
使用以前的 Python 版本,并且在升级之后,我的包通过 pip 安装到 /usr/local/lib/python2.7/dist-packages
,而我安装的新 Python 期望将包安装到 /usr/local/lib/python2.7/site-packages
(从源手动安装 Python 时,它使用site-packages 目录。查看更多here)。我可以临时复制模块,或者只是操纵PYTHONPATH
环境变量指向dist-packages,以便访问使用新安装的Python 版本安装的包。
来自here。
【讨论】:
以上是关于尽管已安装 Python 模块,但未检测到它们的主要内容,如果未能解决你的问题,请参考以下文章