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

有人知道我要做什么吗?


当前回答

http://lxml.de/installation.html上的安装说明说明:

为了在测试环境中加速构建,例如在持续集成服务器上,通过设置CFLAGS环境变量禁用C编译器优化:

CFLAGS="-O0" pip install lxml

其他回答

我在Yosemite上通过brew安装和链接libxml2和libxslt解决了这个问题:

brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

如果你已经用这个方法解决了问题,但它在稍后的时间再次弹出,你可能需要在上面的四行之前运行这个:

brew unlink libxml2
brew unlink libxslt

如果你在Homebrew上有权限错误,特别是在El Capitan上,这是一个有用的文档。基本上,不管OS X版本是什么,都可以尝试运行:

sudo chown -R $(whoami):admin /usr/local
xcode-select --install
sudo easy_install pip
sudo pip install lxml

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

 STATIC_DEPS=true pip install lxml

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

我使用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的修复,但不会永久地改变您的系统。

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

hth