如何在Ubuntu上安装lxml

时间:2011-06-28 10:08:21

标签: python ubuntu lxml libxml2 easy-install

我在Ubuntu 11上使用easy_install安装lxml时遇到了困难。

当我输入$ easy_install lxml时,我得到:

Searching for lxml
Reading http://pypi.python.org/simple/lxml/
Reading http://codespeak.net/lxml
Best match: lxml 2.3
Downloading http://lxml.de/files/lxml-2.3.tgz
Processing lxml-2.3.tgz
Running lxml-2.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-7UdQOZ/lxml-2.3/egg-dist-tmp-GacQGy
Building lxml version 2.3.
Building without Cython.
ERROR: /bin/sh: xslt-config: not found

** make sure the development packages of libxml2 and libxslt are installed **

Using build configuration of libxslt 
In file included from src/lxml/lxml.etree.c:227:0:
src/lxml/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory
compilation terminated.

似乎未安装libxsltlibxml2。我已尝试按照http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.phphttp://www.techsww.com/tutorials/libraries/libxml/installation/installing_libxml_on_ubuntu_linux.php上的说明操作,但没有成功。

如果我尝试wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.27.tar.gz,我会

<successful connection info>
==> SYST ... done.    ==> PWD ... done.
==> TYPE I ... done.  ==> CWD (1) /libxml2 ... done.
==> SIZE libxml2-sources-2.6.27.tar.gz ... done.
==> PASV ... done.    ==> RETR libxml2-sources-2.6.27.tar.gz ... 
No such file `libxml2-sources-2.6.27.tar.gz'.

如果我先尝试另一个,我会到./configure --prefix=/usr/local/libxslt --with-libxml-prefix=/usr/local/libxml2,最终会失败:

checking for libxml libraries >= 2.6.27... configure: error: Could not find libxml2 anywhere, check ftp://xmlsoft.org/.

我已经尝试了2.6.27的{​​{1}}和2.6.29版本,但没有区别。

不遗余力,我已经成功完成libxml2,但这没有任何改变。

11 个答案:

答案 0 :(得分:933)

由于您使用的是Ubuntu,请不要理会这些源包。只需使用apt-get安装这些开发包。

apt-get install libxml2-dev libxslt1-dev python-dev

如果您对可能较旧版本的lxml感到满意,可以试试

apt-get install python-lxml

并完成它。 :)

答案 1 :(得分:110)

我还必须在lxml编译之前安装lib32z1-dev(Ubuntu 13.04 x64)。

sudo apt-get install lib32z1-dev

或所有必需的包裹在一起:

sudo apt-get install libxml2-dev libxslt-dev python-dev lib32z1-dev

答案 2 :(得分:43)

正如@Pepijn评论@Druska的回答,在ubuntu 13.04 x64上,没有必要使用lib32z1-dev,zlib1g-dev就够了:

sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev

答案 3 :(得分:15)

我在Vagrant中使用pip安装了lxml,使用Ubuntu 14.04并遇到了同样的问题。即使安装了所有要求,我也会一次又一次地遇到同样的错误。原来,我的VM默认只有很少的内存。 1024 MB一切正常。

将此添加到您的VagrantFile中,lxml应正确编译/安装:

config.vm.provider "virtualbox" do |vb|
  vb.memory = 1024
end

感谢sixhobbit的提示(参见:can't installing lxml on Ubuntu 12.04)。

答案 4 :(得分:10)

对于Ubuntu 14.04

"images/mur1/V_1_ON.png"

为我工作。

答案 5 :(得分:8)

安装AKX提到的包后,我仍然遇到同样的问题。解决了它

apt-get install python-dev

答案 6 :(得分:8)

第1步

  

使用此命令安装最新的python更新。

     

sudo apt-get install python-dev

第2步

  

添加第一个依赖 libxml2 版本2.7.0或更高版本

     

sudo apt-get install libxml2-dev

第3步

  

添加第二个依赖 libxslt 版本1.1.23或更高版本

     

sudo apt-get install libxslt1-dev

第4步

  

首先安装 pip 包管理工具。并运行此命令。

     

pip install lxml

如果您有任何疑问Click Here

答案 7 :(得分:6)

对于Ubuntu 12.04.3 LTS(精确穿山甲)我必须这样做:

apt-get install libxml2-dev libxslt1-dev

(注意libxslt1-dev中的“1”)

然后我用pip / easy_install安装了lxml。

答案 8 :(得分:1)

这里的许多答案都比较旧,
感谢@Simplans(https://stackoverflow.com/a/37759871/417747)和home page ...

的指针

对我有用的东西(Ubuntu bionic):

sudo apt-get install python3-lxml  

(+我之前安装过sudo apt-get install libxml2-dev libxslt1-dev,但不确定是否仍然需要这样做)

答案 9 :(得分:0)

首先安装Ubuntu的python-lxml包及其依赖项:

sudo apt-get install python-lxml

然后使用pip升级到Python的最新版lxml:

pip install lxml

答案 10 :(得分:0)

从Ubuntu 18.4(Bionic Beaver)开始,建议使用apt而不是apt-get,因为它具有更好的结构形式。

sudo apt install libxml2-dev libxslt1-dev python-dev

如果您对lxml的较旧版本完全满意,可以尝试

sudo apt install python-lxml