问题描述
我在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.
似乎未安装libxslt
或libxml2
。我已经尝试按照http://www.techsww.com/tutorials/libraries/libxslt/installation/installing_libxslt_on_ubuntu_linux.php和http://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/.
我已经尝试了libxml2
的两个版本2.6.27
和2.6.29
没有区别。
我不遗余力地成功完成了sudo apt-get install libxml2-dev
,但这没有任何改变。
最佳解决方案
由于您使用的是Ubuntu,请不要理会这些源包。只需使用apt-get安装这些开发包。
apt-get install libxml2-dev libxslt1-dev python-dev
如果您对可能较旧的lxml版本感到满意,可以尝试一下
apt-get install python-lxml
并完成它。 🙂
次佳解决方案
我还必须在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
第三种解决方案
正如@Pepijn评论@Druska的答案,在ubuntu 13.04 x64上,没有必要使用lib32z1-dev,zlib1g-dev就足够了:
sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
第四种方案
我在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)。
第五种方案
对于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
如果您对Click Here有任何疑问
第七种方案
安装AKX提到的包后,我仍然遇到了同样的问题。解决了它
apt-get install python-dev
第八种方案
对于Ubuntu 12.04.3 LTS(精确穿山甲)我必须这样做:
apt-get install libxml2-dev libxslt1-dev
(注意libxslt1-dev中的”1″)
然后我用pip /easy_install安装了lxml。