如何在OS X 10.8上更正我的Python/pip配置?

Jed*_*sen 2 python unix macos pip osx-mountain-lion

我有一台MacBook Pro运行OS X 10.8,安装了Xcode 4.4.我最近安装了lxml,但是当我去导入它时,我得到了以下内容:

MacBook-Pro:~ jedc$ sudo pip install lxml==2.3.5
Password:
Downloading/unpacking lxml==2.3.5
  Downloading lxml-2.3.5.tar.gz (3.2Mb): 3.2Mb downloaded
  Running setup.py egg_info for package lxml
    Building lxml version 2.3.5.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    warning: no previously-included files found matching '*.py'
Installing collected packages: lxml
  Running setup.py install for lxml
    Building lxml version 2.3.5.
    Building without Cython.
    Using build configuration of libxslt 1.1.26
    building 'lxml.etree' extension
    /usr/bin/cc -fno-strict-aliasing -O3 -w -pipe -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/libxml2 -I/usr/local/Cellar/python/2.7.1/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.macosx-10.4-x86_64-2.7/src/lxml/lxml.etree.o -w -flat_namespace
    /usr/bin/cc -L/usr/local/Cellar/readline/6.1/lib -bundle -undefined dynamic_lookup -L/usr/local/Cellar/readline/6.1/lib build/temp.macosx-10.4-x86_64-2.7/src/lxml/lxml.etree.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.4-x86_64-2.7/lxml/etree.so
    building 'lxml.objectify' extension
    /usr/bin/cc -fno-strict-aliasing -O3 -w -pipe -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/include/libxml2 -I/usr/local/Cellar/python/2.7.1/include/python2.7 -c src/lxml/lxml.objectify.c -o build/temp.macosx-10.4-x86_64-2.7/src/lxml/lxml.objectify.o -w -flat_namespace
    /usr/bin/cc -L/usr/local/Cellar/readline/6.1/lib -bundle -undefined dynamic_lookup -L/usr/local/Cellar/readline/6.1/lib build/temp.macosx-10.4-x86_64-2.7/src/lxml/lxml.objectify.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.4-x86_64-2.7/lxml/objectify.so

Successfully installed lxml
Cleaning up...
MacBook-Pro:~ jedc$ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named lxml
Run Code Online (Sandbox Code Playgroud)

我已经明确地得到了错误配置的东西,因为lxml已成功安装,但Python无法找到它.这是其他信息:

MacBook-Pro:~ jedc$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
MacBook-Pro:~ jedc$ which pip
/usr/local/bin/pip
MacBook-Pro:~ jedc$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/go/bin:/Users/jedc/.rvm/bin
Run Code Online (Sandbox Code Playgroud)

我的〜/ .bash_profile包含这个:

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)

我被告知,我可能已经搞砸了(之前某个时候)安装非Apple默认版本的Python. 任何人都可以帮我弄清楚我需要做些什么来诊断它然后修复它?

Mar*_*ers 6

你的pip命令是为另一个python安装的(安装了一个/usr/local/bin.你会发现/usr/local/bin/python导入工作.

你需要为你的其他python(其中一个)单独安装pip/Library/Frameworks/Python.framework/Versions/2.7/bin/python,为该python版本安装lxml.

使用/Library/Frameworks/Python.framework/Versions/2.7/pip以确保正确的pip命令是用来安装lxml,一旦pip被安装.