关于python:无法在MacOS 10.8.4中安装lxml

Fail to install lxml in MacOS 10.8.4

我在将lxml安装到Mac OS时遇到问题。
构建它时出现以下错误。 这是使用pip install lxml时出现的错误

/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/src/lxml/includes/etree_defs.h:9:10: fatal error: 'libxml/xmlversion.h' file not found

我用brew安装了libxml2:

1
2
brew install libxml2
brew link libxml2 --force

我是Mac的新手。 在Ubuntu中,这意味着必须安装libxml2-dev软件包。

更新:这是pip.log:

"~/.pip/pip.log" 124L, 8293C
requirement_set.install(install_options, global_options, root=options.root_path) File
"/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py",
line 1185, in install
requirement.install(install_options, global_options, *args, **kwargs) File"/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/req.py",
line 592, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False) File
"/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-1.3.1-py2.7.egg/pip/util.py",
line 662, in call_subprocess
% (command_desc, proc.returncode, cwd)) InstallationError: Command /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
-c"import setuptools;file='/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/setup.py';exec(compile(open(file).read().replace('

',
'
'), file, 'exec'))" install --record
/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-nsV0iT-record/install-record.txt
--single-version-externally-managed failed with error code 1 in /private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml

任何的想法 ?
非常感谢


结果xmlversion.h不包含在编译路径中,即使它在PATH中。修改C_INCLUDE_PATH env为我修复错误:

C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.1/include/libxml2:$C_INCLUDE_PATH


如果您在安装Xcode的情况下运行Mavericks,您还可以使用:

1
export C_INCLUDE_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/usr/include/libxml2:$C_INCLUDE_PATH


我通过brew安装了Python和libxml,在尝试了以上所有内容后,这对我有用:

1
2
sudo mkdir /usr/include # If /usr/include is missing
sudo ln -s /usr/local/Cellar/libxml2/2.9.2/include/libxml2 /usr/include/libxml2

注意:您需要检查自己的路径以获取最新版本。

由于标题在别处可用,并且在特定目录中查找(在命令调用clang编译中发现) - 由于某种原因,备用位置没有被拾取,我做了一个到正确位置的软链接。


没有其他答案(导出C_INCLUDE_PATH)对我有用。但是,将CFLAGS环境变量设置为内置OS X 10.10 libxml2根就像魅力一样。

1
export CFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/libxml2


1
2
3
brew install libxml2
brew link libxml2 --force
export C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.2/include/libxml2:$C_INCLUDE_PATH


当系统是Mac EI队长时,在/usr/中有mkdir的权限。也许我们不能修改这个目录?

看看El Capitan的"无根"功能是什么?在AskDifferent上