关于python:如何在Ubuntu上安装lxml

How to install lxml on Ubuntu

我很难在Ubuntu 11上轻松安装lxml。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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/libxslt/installation/installation/installing_-libxslt_-linux.php和http://www.techsww.com/tutorials/libxml/installation/installation/installing_-libxml_-linux.php上的说明操作,但没有成功。

如果我试一下,我会

1
2
3
4
5
6
<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,最终会失败,因为:

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

我试过两种版本的2.6.272.6.29libxml2没有区别。

不遗余力,我已经成功地完成了第十一章(八),但这一点没有改变。


既然你在Ubuntu上,就不用担心那些源代码包了。只需使用apt-get安装这些开发包。

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

如果您对可能是旧版本的lxml感到满意,那么您可以尝试

1
apt-get install python-lxml

完成它。:)


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

1
sudo apt-get install lib32z1-dev

或所有必需的包装:

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


正如@pepijn对@druska的回答所评论的那样,在Ubuntu 13.04 x64上,不需要使用lib32z1 dev,zlib1g dev就足够了:

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


我使用Ubuntu14.04在Vagrant中安装了带有PIP的LXML,并且遇到了同样的问题。即使安装了所有的需求,我还是一次又一次地得到相同的错误。结果,默认情况下,我的虚拟机内存太少。使用1024 MB,一切正常。

将它添加到您的vagrantfile中,lxml应该正确编译/安装:

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

感谢sixhobbit提供的提示(请参阅:无法在Ubuntu 12.04上安装lxml)。


适用于Ubuntu 14.04

sudo apt-get install python-lxml

为我工作。


步骤1

Install latest python updates using this command.

sudo apt-get install python-dev

步骤2

Add first dependency libxml2 version 2.7.0 or later

sudo apt-get install libxml2-dev

步骤3

Add second dependency libxslt version 1.1.23 or later

sudo apt-get install libxslt1-dev

步骤4

Install pip package management tool first. and run this command.

pip install lxml

如果您有任何疑问,请单击此处


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

1
apt-get install python-dev

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

1
apt-get install libxml2-dev libxslt1-dev

(注意libxslt1 dev中的"1")

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


这里的许多答案都很古老,感谢@simplans的指针(https://stackoverflow.com/a/37759871/417747)和主页…

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

1
sudo apt-get install python3-lxml

(+sudo apt-get install libxml2-dev libxslt1-dev我安装在它之前,但不确定这是否仍然是要求)


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

1
sudo apt-get install python-lxml

然后使用pip升级到最新版本的lxml for python:

1
pip install lxml