找不到 Python pip 安装模块。如何将python链接到pip位置?

Posted

技术标签:

【中文标题】找不到 Python pip 安装模块。如何将python链接到pip位置?【英文标题】:Python pip install module is not found. How to link python to pip location? 【发布时间】:2013-02-09 17:24:18 【问题描述】:

我是新手,我的项目需要 pySerial 和 feedparser 模块。我在跑山狮。

我遵循以下教程,以便我可以升级到 python 2.7.3,然后使用上述模块。

http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/

我按照本教程进行操作,直到我安装了 pip。而不是安装 Virtualenv。我使用以下命令安装 pySerial 和 feedparser

$ pip install pySerial
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages
Cleaning up...

我假设这已经存在并检查了它。 Python 似乎可以很好地导入它。我的 python 版本已经升级到 2.7.3 顺便说一句,因为我使用教程中提到的自制软件安装它。

然后我尝试安装 feedparser

$ pip install feedparser
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages
Cleaning up...

注意它在 usr/local/lib 的 site-packages 目录中的位置。

我所有的 pip 安装都安装在该目录中,但是当我尝试导入它们时,python 似乎没有拾取它们。

如何设置路径,以便 python 也可以在此处以及核心目录中查找?

我们将不胜感激。

我尝试在这里寻找答案: Pip installs but module is not found Why I can't import beautifulsoup on mac using python 2.7 after installing it by using pip and/or easy_install?

但他们俩的情况都和我一样。我不明白为什么会这样,因为我用以下内容编辑了我的 bash_profile

# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc

然后安装homebrew,然后通过homebrew安装python 2.7.3(2.7.3目前在我的机器上运行)

我认为所有 pip 安装都会正确链接?

【问题讨论】:

【参考方案1】:

作为一种快速解决方法,假设您使用的是类似 bash 的终端 (Linux/OSX),您可以尝试导出 PYTHONPATH 环境变量:

export PYTHONPATH="$PYTHONPATH:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"

对于 Python 2.7

【讨论】:

【参考方案2】:

这是我在安装多个 Python 版本时遇到 pip 问题很长时间后学到的东西(尤其适用于可能使用 brew 安装 python blends 的 OS X 用户。)

我假设大多数 python 开发人员在他们的脚本开头都有:

#!/bin/env python

你可能会惊讶地发现,这不一定和你从命令行运行的那个 python >python

为确保您使用正确的 pip 实例为您的 python 解释器安装包,您需要运行以下内容:

>/bin/env python -m pip install --upgrade mymodule

【讨论】:

我认为你的意思是 /usr/bin/env 用于 OSX【参考方案3】:

我也有这个问题。我注意到 /usr/local/lib/python2.7/dist-packages/ 下的所有子目录和文件都没有 group 和 other 的读写权限,它们归 root 所有。这意味着只有 root 用户可以访问它们,因此任何尝试运行使用这些模块的 Python 脚本的用户都会遇到导入错误:

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named selenium
>>> 

我授予了对文件的读取权限以及对组和其他子目录的搜索权限,如下所示:

$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages

这为我解决了问题:

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>> 

我使用 pip 安装了这些软件包(使用 sudo 以 root 身份运行)。我不确定为什么在没有授予读取/搜索权限的情况下安装它们。这对我来说似乎是 pip 中的错误,或者可能是包配置中的错误,但我对 Python 及其模块打包不是很熟悉,所以我不确定。 FWIW, dist-packages 下的所有软件包都有这个问题。无论如何,希望对您有所帮助。

问候。

【讨论】:

【参考方案4】:

没有其他解决方案适合我,所以我尝试了:

pip uninstall <module> && pip install <module>

这为我解决了问题。您的里程可能会有所不同。

【讨论】:

【参考方案5】:

为了任何人也在 Windows 环境中使用 Visual Studio:

我意识到当我运行 pip install 时我可以看到我的模块已安装

py pip install [moduleName] 
py pip list

但是,在 Visual Studio 中进行调试时出现“找不到模块”。奇怪的是,当我在 powershell 中运行解释器时,我成功运行了import [moduleName]

原因:

visual studio 在以下位置使用了错误解释器: C:\Users\[username]\AppData\Local\Programs\Python\Python37\

我真正想要的是 Visual Studio 使用我为我的项目设置的 virtualenv。为此,请在“解决方案资源管理器”中右键单击 Python 环境,选择添加虚拟环境...,然后选择您创建虚拟环境的文件夹。 然后,在项目设置下的常规选项卡下,从下拉列表中选择您的虚拟环境。

现在 Visual Studio 应该使用相同的解释器,并且一切都应该运行良好!

【讨论】:

【参考方案6】:

如果您的 pythonpip 二进制文件来自不同版本,则使用 pip 安装的模块将无法用于 python。

解决步骤:

    使用默认环境打开一个新终端并找到pippython 的二进制文件。
readlink $(which pip)
../Cellar/python@2/2.7.15_1/bin/pip

readlink $(which python)
/usr/local/bin/python3      <-- another symlink

readlink /usr/local/bin/python3
../Cellar/python/3.7.2/bin/python3

在我的例子中,您可以看到2.7.15_13.7.2 版本之间的明显不匹配。

    将 pip 符号链接替换为与当前 python 版本匹配的 pip 二进制文件。 在以下命令中使用您的 python 版本
ln -is /usr/local/Cellar/python/3.7.2/bin/pip3 $(which pip)

-i 标志提示您在目标存在时覆盖。

这应该可以解决问题。

【讨论】:

【参考方案7】:

以下步骤帮助我解决了这个问题。

升级 pip 版本 使用命令rm -rf env-name删除创建的环境 使用命令python3 -m venv env-aide创建环境 现在安装包并检查

【讨论】:

【参考方案8】:

对我来说,问题是我在文件 pydistutils.cfg 中有奇怪的配置设置

尝试运行 rm ~/.pydistutils.cfg

【讨论】:

【参考方案9】:

确保检查您正在使用的 python 版本,如果它是 2,那么只有 pip install 有效 如果是 3. 的话,请确保使用 pip3 install

【讨论】:

【参考方案10】:

对我有用(使用 Python 3.8)的是:

    卸载旧 python 版本的剩余部分(不知何故有 3 安装了不同的,但从未注意到) 将 pip 升级到最新版本 删除并重新安装模块

这可以避免 pip 将软件包安装到您和您的 IDE 不使用的版本。

【讨论】:

【参考方案11】:

你是如何安装easy_install/pip的?确保为升级版的 python 安装了它。这里可能发生的是旧的(默认)python 安装可能链接到您的 pip 安装。您可能想尝试运行默认版本并导入新安装的模块。

【讨论】:

以上是关于找不到 Python pip 安装模块。如何将python链接到pip位置?的主要内容,如果未能解决你的问题,请参考以下文章

解决找不到pip模块的问题

Mac 找不到pip 和 pip3

安装pygame后为什么现实找不到这个模块

我已经用pip安装了statsmodels 但是pycharm中找不到它,pycharm也无法安装

python setup.py install 出错

找不到从 gitlab 私有注册表安装的模块 pip