我想安装Lxml,这样我就可以安装Scrapy了。

当我更新我的Mac今天,它不让我重新安装lxml,我得到以下错误:

In file included from src/lxml/lxml.etree.c:314:
/private/tmp/pip_build_root/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found
#include "libxml/xmlversion.h"
         ^
1 error generated.
error: command 'cc' failed with exit status 1

我尝试使用brew安装libxml2和libxslt,两者都安装好了,但我仍然无法安装lxml。

上次安装时,我需要在Xcode上启用开发人员工具,但由于它更新到Xcode 5,它不再给我这个选项了。

有人知道我要做什么吗?


当前回答

xcode-select --install
sudo easy_install pip
sudo pip install lxml

其他回答

我遇到了同样的问题,经过几天的工作,我在OS X 10.9.4上用Python 3.4.1解决了这个问题。

这是我的解决方案,

根据从lxml.de安装lxml,

lxml的macport是可用的。尝试端口安装py25-lxml之类的方法

如果没有MacPort,请从MacPort.org上安装。这很简单。你可能还需要一个编译器,安装Xcode编译工具,使用Xcode -select——install

首先,我通过sudo port selfupdate将我的端口更新到最新版本,

然后我只是键入sudo端口安装libxml2,几分钟后,你应该看到libxml2安装成功。可能还需要libxslt来安装lxml。要安装libxslt,请使用:sudo port install libxslt。

现在,只需输入pip install lxml,它应该可以正常工作。

我尝试了上面的大多数解决方案,但没有一个对我有效。我正在运行Yosemite 10.10,唯一适合我的解决方案是在终端中输入这个:

sudo CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install lxml

编辑:如果你正在使用virtualenv,开头的sudo是不需要的。

在我的情况下,我必须在安装lxml之前关闭卡巴斯基防病毒:

pip install lxml

这篇文章链接了一个对我有用的解决方案 在Mac OS X 10.9上,Python3, lxml和“Symbol not found: _lzma_auto_decoder”

hth

对于homebrew, libxml2是隐藏的,以不干扰系统libxml2,因此必须帮助pip才能找到它。

bash:

LDFLAGS=-L`brew --prefix libxml2`/lib CPPFLAGS=-I`brew --prefix libxml2`/include/libxml2 pip install --user lxml

与鱼:

env LDFLAGS=-L(brew --prefix libxml2)/lib CPPFLAGS=-I(brew --prefix libxml2)/include/libxml2 pip install --user lxml