找不到 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】:如果您的 python
和 pip
二进制文件来自不同版本,则使用 pip 安装的模块将无法用于 python。
解决步骤:
-
使用默认环境打开一个新终端并找到
pip
和python
的二进制文件。
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_1
和3.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位置?的主要内容,如果未能解决你的问题,请参考以下文章