我正在尝试使用 easy_install(和 pip(安装 lxml 和 pycrypto 模块,但收到错误消息,例如
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’
呸。。。
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
当我尝试安装 pycrypto 时,我也遇到了类似的语法错误。我尝试了这个答案,但徒劳无功。我尝试使用 setuptools-0.6c11-py2.6.egg 和 setuptools-0.6c11-py2.7.egg 为 python 2.6 和 2.7 环境进行设置,但得到相同的输出。
我在网上搜索了很多,但找不到解决方案。
编辑:我在Macbook Pro 2010上的OSX 10.7上,并安装了XCode 4和3
我会在尝试上面链接中的命令时替换为最新版本。
python setup.py build --static-deps --libxml2-version=2.7.8 --libxslt-version=1.1.26
sudo python setup.py install
我读过其他帖子并尝试过这个
STATIC_DEPS=true sudo easy_install --allow-hosts=lxml.de,*.python.org lxml
溶液:
按照@jdi的建议,我做了以下事情
$ brew install --use-llvm libxml2
$ brew install --use-llvm libxslt
从链接安装了 gcc,因为我仍然面临建议的选项 1 和 2 的问题
然后,要么这个
$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ /usr/bin/python2.6 setup.py build
$ sudo /usr/bin/python2.6 setup.py install
或者这个,会起作用
$ sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install-2.6 lxml
同样适用于pycrypto。
这表明您构建它不正确:/Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10
,除非您当然使用的是旧的 powerpc 机器。
检查您正在运行的 OSX 版本,以及用于构建 lxml 的命令。在构建之前,您可能需要在 shell 中设置export ARCHFLAGS="-arch i386 -arch x86_64"
,以避免它与 ppc
一起构建。不知道为什么你会得到一个旧拱门。
另外,请确保您安装了最新的 Xcode。而且,如果您逐字逐句地点击您发布的链接,请确保您使用的是这些软件包的最新版本,而不是文字版本,因为该链接已有 3 年的历史。
如果所有其他方法都失败了,请安装自制软件并通过该包管理器安装它。
更新:XCode 4.2+ 更新后缺少 GCC 4.2 的选项
选一个
-
使用这个简单的指南安装 gcc 4.2:
http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42 -
使用自制软件安装它:
brew tap homebrew/dupes
brew install homebrew/dupes/apple-gcc42
-
完全忽略 gcc 并将 llvm 与 brew 一起使用
brew install --use-llvm libxml2