![](/img/trans.png)
[英]How to install libgpuarray and clBLAS in python on mac os x (10.9)?
[英]Cannot install Lxml on Mac OS X 10.9
我想安装 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
我通过 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
我尝试了上面的大多数解决方案,但没有一个对我有用。 我正在运行 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。
这也困扰了我一段时间。 我对 python distutils 等的内部了解不够,但这里的包含路径是错误的。 我做了以下丑陋的 hack 来阻止我,直到 python lxml 人们可以做正确的修复。
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml2/libxml/ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/libxml
全局安装... 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
http://lxml.de/installation.html上的安装说明说明:
要加快测试环境中的构建,例如在持续集成服务器上,请通过设置 CFLAGS 环境变量来禁用 C 编译器优化:
CFLAGS="-O0" pip install lxml
以上在 10.9.2 上都不适合我,因为编译会出现以下错误:
clang: error: unknown argument: '-mno-fused-madd'
这实际上导致了最干净的解决方案(请参阅 [1] 中的更多详细信息):
export CFLAGS=-Qunused-arguments
export CPPFLAGS=-Qunused-arguments
pip install lxml
或者如果全局安装,则遵循
sudo pip install lxml
xcode-select --install
sudo easy_install pip
sudo pip install lxml
我通过运行以下命令在Yosemite
上解决了这个问题:
xcode-select install #this may take several minutes.
pip install lxml
使用自制软件,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
OSX 10.9.2
sudo env ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future STATIC_DEPS=true pip install lxml
我尝试了此页面上的所有答案,但没有一个对我有用。 我正在运行 OS X 版本 10.9.2
但这绝对有效......就像一个魅力:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install lxml
不幸的是xcode-select --install
对我不起作用,因为我已经有了最新版本。
这很奇怪,但我通过打开 XCode 并接受条款和条件解决了这个问题。 重新运行pip install lxml
之后没有返回任何错误。
从 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 安装,请忽略此选项。
就我而言,在安装 lxml 之前,我必须通过以下方式关闭卡巴斯基反病毒软件:
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 的修复,但不会以永久的方式改变您的系统。
我遇到了同样的问题,经过几天的工作,我在 OS X 10.9.4 上使用 Python 3.4.1 解决了这个问题。
这是我的解决方案,
根据从 lxml.de安装 lxml ,
可以使用 lxml 的 macport。 尝试像 port install py25-lxml 这样的东西
如果您没有 MacPort,请从MacPort.org安装它。 这很容易。 您可能还需要一个编译器,要安装 Xcode 编译工具,请使用xcode-select --install
首先,我通过sudo port selfupdate
将我的端口更新到最新版本,
然后我只需输入sudo port install libxml2
几分钟后你应该会看到 libxml2 安装成功。 可能您还需要libxslt
来安装 lxml。 要安装 libxslt,请使用: sudo port install libxslt
。
现在,只需输入pip install lxml
,它应该可以正常工作。
在编译之前,将 xmlversion.h 的路径添加到您的环境中。
$ set INCLUDE=$INCLUDE:/private/tmp/pip_build_root/lxml/src/lxml/
但请确保我提供的路径中包含 xmlversion.h 文件。 然后,
$ python setup.py install
pip
对我不起作用。 我去了https://pypi.python.org/pypi/lxml/2.3并下载了 macosx .egg 文件:
然后使用命令行easy_install
安装.egg
文件。
这篇文章链接到适用于我的解决方案Python3、lxml 和 Mac OS X 10.9 上的“找不到符号:_lzma_auto_decoder”
第
在撕了很多头发和咬牙切齿之后,我用 pip 卸载了 Xcode 并运行:
easy_install lxml
一切都很好。
尝试:
% STATIC_DEPS=true pip install lxml
或者:
% STATIC_DEPS=true sudo pip install lxml
它有效!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.