无法在MacOS 10.8.4中安装lxml

时间:2013-07-25 12:19:40

标签: python macos lxml libxml2

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

时出现的错误
  

/private/var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-build-khuevu/lxml/src/lxml/includes/etree_defs.h:9:10:致命错误:'libxml / xmlversion.h'文件没有结果

我已经用brew安装了libxml2:

brew install libxml2
brew link libxml2 --force

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

更新:这是pip.log:

  

“〜/ .pip / pip.log”124L,8293C       requirements_set.install(install_options,global_options,root = options.root_path)文件   “/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”,   第1185行,正在安装中       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”   第592行,安装中       cwd = self.source_dir,filter_stdout = self._filter_install,show_stdout = False)文件   “/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”,   第662行,在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(文件)。读()。替换( '\ r \ N',   '\ n'),文件,'exec'))“install --record   /var/folders/9s/s5hl5w4x7zjdjkdljw9cnsrm0000gn/T/pip-nsV0iT-record/install-record.txt   --single-version-external-managed失败,错误代码为1 / private / var / folders / 9s / s5hl5w4x7zjdjkdljw9cnsrm0000gn / T / pip-build-khuevu / lxml

有什么想法吗? 非常感谢

6 个答案:

答案 0 :(得分:21)

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

  

C_INCLUDE_PATH =的/ usr /本地/地窖/ libxml2的/ 2.9.1 /包含/ libxml2的:$ C_INCLUDE_PATH

答案 1 :(得分:19)

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

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

答案 2 :(得分:5)

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

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

答案 3 :(得分:5)

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

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编译的命令中发现) - 由于某种原因,备用位置没有被拾取,我做了一个到正确位置的软链接

答案 4 :(得分:4)

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

答案 5 :(得分:1)

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

请参阅AskDifferent上的What is the “rootless” feature in El Capitan, really?