尽管已安装 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 模块,但未检测到它们的主要内容,如果未能解决你的问题,请参考以下文章

尽管在路径上,但未找到 nvcc

已安装 .NET 的 Oracle 数据提供程序,但未进行机器范围的配置

已加载 PDO 和 pdo_mysql 但未找到类

尽管已安装模块,但 Node.js 找不到模块

已安装 libusb - 但未找到 pyUSB 后端

Gensim 4.1.2 已安装但未找到