Unable to Install with easy_install or pip on mac

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


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