Unable to Install with easy_install or pip on mac

核能气质少年 提交于 2019-12-08 06:22:41

问题


I'm trying to install lxml and pycrypto modules using easy_install (and pip) but getting error messages like

Running lxml-2.3.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-kGsWMh/lxml-2.3.4/egg-dist-tmp-Gjqy3f
Building lxml version 2.3.4.
Building without Cython.
Using build configuration of libxslt 1.1.24
In file included from /usr/include/limits.h:63,
                 from /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10/4.0.1/include/limits.h:10,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:19,
                 from src/lxml/lxml.etree.c:4:
/usr/include/sys/cdefs.h:540:4: error: #error Unknown architecture
In file included from /usr/include/limits.h:64,
                 from /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10/4.0.1/include/limits.h:10,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:19,
                 from src/lxml/lxml.etree.c:4:
/usr/include/machine/limits.h:10:2: error: #error architecture not supported
In file included from /usr/include/sys/_types.h:33,
                 from /usr/include/_types.h:27,
                 from /usr/include/stdio.h:67,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:33,
                 from src/lxml/lxml.etree.c:4:
/usr/include/machine/_types.h:36:2: error: #error architecture not supported
In file included from /usr/include/_types.h:27,
                 from /usr/include/stdio.h:67,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:33,
                 from src/lxml/lxml.etree.c:4:
/usr/include/sys/_types.h:94: error: syntax error before ‘__darwin_blkcnt_t’
    src/lxml/lxml.etree.c:165640: error: syntax error before ‘val’
    src/lxml/lxml.etree.c:165645: error: syntax error before ‘val’

bla bla . . .

src/lxml/lxml.etree.c:165645: error: syntax error before ‘val’

lipo: can't figure out the architecture type of: /var/folders/f3/2q2x2p015kzgd4nbrn_qwykh0000gn/T//cc1pnrww.out

error: command 'gcc-4.0' failed with exit status 1

I'm getting similar syntax errors when I try to install pycrypto as well. I tried this answer but in vain. I tried setting up for python 2.6 and 2.7 environments using setuptools-0.6c11-py2.6.egg and setuptools-0.6c11-py2.7.egg but getting the same output.

I searched a lot online but cant find solution for this.

EDIT: I'm on OSX 10.7 on macbook pro 2010, and have XCode 4 and 3 installed

I'd args with replaced with the latest version while trying the commands in the link above.

python setup.py build --static-deps --libxml2-version=2.7.8  --libxslt-version=1.1.26 
sudo python setup.py install

I read on someother post and tried this as well

STATIC_DEPS=true sudo easy_install --allow-hosts=lxml.de,*.python.org lxml

Solution:

As @jdi suggested I did the following

$ brew install --use-llvm libxml2
$ brew install --use-llvm libxslt

Installed gcc from link, since I was still facing issues with option 1 and 2 suggested

Then, either this

$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ /usr/bin/python2.6 setup.py build
$ sudo /usr/bin/python2.6 setup.py install

Or this, will work

$ sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install-2.6 lxml

Same worked for pycrypto as well


回答1:


This right here is an indication that you are building it improperly: /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10, unless of course you are on an old powerpc machine.

Check the version of OSX you are running, and the commands you are using to build lxml. Chances are you might need to set export ARCHFLAGS="-arch i386 -arch x86_64" in your shell before building, in order to avoid it building with ppc. Not sure why you are getting an old arch.

Also, make sure you have the latest Xcode installed. And, if you are following that link you posted, word for word, make sure you are using the most recent versions of those packages and not the literal versions as that link is 3 years old.

If all else fails, install homebrew and install it through that package manager.

Update: Options for lack of GCC 4.2 after XCode 4.2+ update

Pick one

  1. Install gcc 4.2 using this simple guide:
    http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42

  2. Use homebrew to install it: 

    brew tap homebrew/dupes
    brew install homebrew/dupes/apple-gcc42

  3. Completely ignore gcc and use llvm with brew

    brew install --use-llvm libxml2     



来源:https://stackoverflow.com/questions/10658909/unable-to-install-with-easy-install-or-pip-on-mac

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!