我想安装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的命令行工具。 在终端试试这个:

xcode-select --install

其他回答

我使用OSX 10.9.2,我得到了同样的错误。

安装Xcode命令行工具对这个特定版本的OSX没有帮助。

我认为更好的解决方法是使用以下命令进行安装:

$ CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2 pip install lxml

这类似于jdkoftinoff的修复,但不会永久地改变您的系统。

在编译之前,将xmlversion.h的路径添加到您的环境中。

$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/

但是要确保我提供的路径中有xmlversion.h文件。然后,

$ python setup.py install

我尝试了上面的大多数解决方案,但没有一个对我有效。我正在运行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是不需要的。

在咬着牙撕扯头发之后,我用pip卸载了Xcode,然后运行:

easy_install lxml

一切都很好。

我试了这一页上所有的答案,没有一个对我有用。我运行的是OS X版本10.9.2

但这绝对有效....像个符咒:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install lxml