无法在virtualenv中安装libxml2

时间:2018-06-15 18:23:41

标签: python python-3.x pip libxml2 fedora-27

我遇到了libxml2 python模块的问题。

我正在尝试使用以下命令在 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" failed with error code 1

How to install libxml2 in virtualenv?

我在fedora 27 os上工作

4 个答案:

答案 0 :(得分:2)

它安装了lxml,实际上你可能想使用lxml而不是libxml2,因为lxml基于libxml2更加pythonic:

sudo pip install lxml

libxml2页面说:

  

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

lxml页面说:

  

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

答案 1 :(得分:1)

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

yum install libxml2-devel

然后再次运行pip安装

答案 2 :(得分:0)

是的,在尝试更新lmxl pip程序包后,我遇到了相同的错误。问题是 lxml 依赖于libmxl2libxslt开发库。因此,您需要确保先安装它们。

# 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

(以及他们依次依赖的任何东西。)

答案 3 :(得分:0)

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

我为解决该问题所做的事情是:

  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. 完成。 希望本文对您有所帮助。