找不到Python pip安装模块。如何将python链接到pip位置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了找不到Python pip安装模块。如何将python链接到pip位置?相关的知识,希望对你有一定的参考价值。
我是新手,我需要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 btw,因为我使用本地教程中提到的自制软件安装它。
然后我尝试安装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
然后安装自制软件然后通过自制软件安装python 2.7.3(2.7.3现在正在我的机器上运行)
我想所有的pip安装都会正确链接?
作为一种快速解决方法,假设您使用的是类似bash的终端(Linux / OSX),您可以尝试导出PYTHONPATH环境变量:
export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
对于Python 2.7
这是我在长时间遇到pip问题后学到的东西,当我安装了几个版本的Python时(尤其对于可能使用brew来安装python混合的OS X用户有效。)
我假设大多数python开发人员在他们的脚本开头都有:
#!/bin/env python
你可能会惊讶地发现这不一定是你从命令行>python
运行的那个python
为了确保使用python解释器的正确pip实例安装软件包,您需要运行以下内容:
>/bin/env python -m pip install --upgrade mymodule
我也有这个问题。我注意到/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安装了这些软件包(以root身份运行sudo)。我不确定为什么在没有授予读/读权限的情况下安装它们。这对我来说似乎是一个错误,或者可能在包配置中,但我对Python及其模块包装不太熟悉,所以我不确定。 FWIW,dist-packages下的所有软件包都有这个问题。无论如何,希望有所帮助。
问候。
没有其他解决方案适合我,所以我试过:
pip uninstall <module> && pip install <module>
这解决了我。你的旅费可能会改变。
你是如何安装easy_install / pip的?确保为python的升级版安装了它。这里可能发生的是旧的(默认)python安装可能链接到你的pip安装。您可能想尝试运行默认版本并导入新安装的模块。
对我来说问题是我在文件pydistutils.cfg
中有奇怪的配置设置
尝试运行
rm ~/.pydistutils.cfg
如果您的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
标志会提示您覆盖。
这应该够了吧。
以上是关于找不到Python pip安装模块。如何将python链接到pip位置?的主要内容,如果未能解决你的问题,请参考以下文章