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
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)
小智 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下的所有软件包都有这个问题.无论如何,希望有所帮助.
问候.
没有其他解决方案对我有用,因此我尝试:
pip uninstall <module> && pip install <module>
Run Code Online (Sandbox Code Playgroud)
这就为我解决了。你的旅费可能会改变。