5

我遇到了libxml2python 模块的问题。

我正在尝试使用以下命令将它安装在python3 virtualenv上:

pip install libxml2-python3

但它显示以下错误:

Collecting libxml2-python3   Using cached
https://files.pythonhosted.org/packages/41/97/a2ecf6c5b291799dbd40b3d041d89b0ecdb1b43c8c2503e27991325851cd/libxml2-python3-2.9.5.tar.gz
     Complete output from command python setup.py egg_info:
     failed to find headers for libxml2: update includes_dir

     ---------------------------------------- 
 Command "python setup.py egg_info" failed with error code 1 in
 /tmp/pip-install-72u9ke0y/libxml2-python3/

我尝试了以下链接中提供的解决方案,但对我没有任何作用:

https://github.com/GoogleCloudPlatform/google-cloud-python/issues/3884

“pip install unroll”:“python setup.py egg_info”失败,错误代码为 1

如何在 virtualenv 中安装 libxml2?

我在 Fedora 27 操作系统上工作

4

4 回答 4

2

如果我没记错的话,您将需要 libxml2 开发文件。尝试运行

yum install libxml2-devel

然后再次运行 pip install

于 2018-06-15T21:08:27.543 回答
2

它与 lxml 一起安装,实际上您可能想使用 lxml 而不是 libxml2,因为 lxml 基于 libxml2 更 Pythonic:

sudo pip install lxml

libxml2 页面说:

请注意,一些 Python 纯粹主义者不喜欢默认的 Python 绑定集,而不是抱怨我建议他们查看 lxml,了解 libxml2 和 libxslt 的更多 Pythonic 绑定,并检查邮件列表。

lxml 页面说:

lxml XML 工具包是 C 库 libxml2 和 libxslt 的 Pythonic 绑定。它的独特之处在于它将这些库的速度和 XML 功能完整性与原生 Python API 的简单性结合在一起,大部分兼容但优于众所周知的 ElementTree API。最新版本适用于从 2.6 到 3.6 的所有 CPython 版本。有关 lxml 项目的背景和目标的更多信息,请参阅介绍。常见问题解答中回答了一些常见问题。

于 2018-06-15T21:23:29.310 回答
1

我遇到了类似的情况,我的 linux 是 Windows 10 上的 Ubuntu(WSL - Windows Subsystem for Linux

我为解决这个问题所做的是:

  1. 使用 apt,安装:python3 python3-pip、libxml2 libxml2-dev。
me@WSL:~/$ sudo apt-get update
me@WSL:~/$ sudo apt install python3 python3-pip libxml2 libxml2-dev
  1. 使用已安装的 pip,安装 libxml2-python
    me@WSL:~/$ pip3 install libxml2-python3
  1. 完毕。希望本笔记对您有所帮助。
于 2019-12-19T23:21:43.857 回答
0

是的,我在尝试更新lmxlpip 包后遇到了同样的错误。问题是lxml依赖于libmxl2开发libxslt库。因此,您需要确保首先安装它们。

# pip3 show lxml
Name: lxml
Version: 4.2.5
Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
Home-page: http://lxml.de/
Author: lxml dev team
Author-email: lxml-dev@lxml.de
License: BSD
Location: /usr/lib/python3.6/site-packages
Requires:
Required-by: Scrapy, parsel, [etc etc]

因此,按照以下方式安装软件包:

apt-get install libxml2-devel libxslt-devel

(以及他们反过来依赖的任何东西。)

于 2018-11-08T15:47:42.677 回答