我想安装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,它不再给我这个选项了。

有人知道我要做什么吗?


当前回答

你可以通过在命令行上运行这个命令来解决你的问题:

 STATIC_DEPS=true pip install lxml

这对我很有帮助。 文档说明

其他回答

全球安装…OS x 10.9.2

xcode-select --install
sudo easy_install pip
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

我尝试了上面的大多数解决方案,但没有一个对我有效。我正在运行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 (lxml 3.6.4)成功安装后,我在导入lxml时得到一个错误。etree模块。

我无休止地寻找安装这个作为scrapy的必要条件,并尝试了所有的选项,但最终这对我来说是有效的(mac osx 10.11 python 2.7):

$ STATIC_DEPS=true sudo easy_install-2.7 "lxml==2.3.5"

lxml的旧版本似乎与etree模块一起工作。

Pip通常可以忽略包的指定版本,例如当您在Pip缓存中有较新的版本时,因此easy_install。'-2.7'选项适用于python版本,如果您安装的是python 3.x,则省略此选项。

不幸的是,xcode-select -install不适合我,因为我已经有了最新的版本。

这很奇怪,但我通过打开XCode并接受条款和条件解决了这个问题。重新运行pip install lxml之后没有返回错误。

皮普没有为我工作。我去了 https://pypi.python.org/pypi/lxml/2.3 下载macosx .egg文件:

https://pypi.python.org/packages/2.7/l/lxml/lxml-2.3-py2.7-macosx-10.6-intel.egg#md5=52322e4698d68800c6b6aedb0dbe5f34

然后使用命令行easy_install安装.egg文件。