问题
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
Install gcc 4.2 using this simple guide:
http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42Use homebrew to install it:
brew tap homebrew/dupes
brew install homebrew/dupes/apple-gcc42
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