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

use*_*478 33 python installation homebrew module path

我是新手,我需要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...
Run Code Online (Sandbox Code Playgroud)

我认为这已经存在并检查了它.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...
Run Code Online (Sandbox Code Playgroud)

请注意它在usr/local/lib中的site-packages目录中的含义.

我的所有pip安装都安装在该目录中,但是当我尝试导入它时,python似乎没有把它们拿起来.

如何设置路径以便python也可以看到核心目录?

对你的帮助表示感谢.

我试着在这里寻找答案: Pip安装但找不到模块 为什么我不能使用python 2.7在使用pip和/或easy_install安装后使用python 2.7导入beautifulsoup?

但是他们中的其他人和我一样.我不明白为什么会发生这种情况,因为我用以下内容编辑了我的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
Run Code Online (Sandbox Code Playgroud)

然后安装自制软件然后通过自制软件安装python 2.7.3(2.7.3现在正在我的机器上运行)

我想所有的pip安装都会正确链接?

小智 45

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

export PYTHONPATH="${PYTHONPATH}:/usr/local/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages"
Run Code Online (Sandbox Code Playgroud)

对于Python 2.7

  • 这个对我有用.你能简单解释一下吗?谢谢 (9认同)
  • 我可以在 Windows 上做什么? (4认同)

sor*_*rin 16

这是我在长时间遇到pip问题后学到的东西,当我安装了几个版本的Python时(尤其对于可能使用brew来安装python混合的OS X用户有效.)

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

#!/bin/env python
Run Code Online (Sandbox Code Playgroud)

您可能会惊讶地发现这不一定是与从命令行运行的python相同的python >python

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

>/bin/env python -m pip install --upgrade mymodule
Run Code Online (Sandbox Code Playgroud)

  • 我想你的意思是 OSX 的 `/usr/bin/env` (3认同)
  • 太棒了 这解决了我的问题。 (2认同)

小智 8

我也有这个问题.我注意到/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
>>> 
Run Code Online (Sandbox Code Playgroud)

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

$ sudo chmod -R go+rX /usr/local/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题:

$ 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
>>> 
Run Code Online (Sandbox Code Playgroud)

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

问候.


Cor*_*ein 5

没有其他解决方案对我有用,因此我尝试:

pip uninstall <module> && pip install <module>
Run Code Online (Sandbox Code Playgroud)

这就为我解决了。你的旅费可能会改变。