如何在 Ubuntu 上安装 lxml
Posted
技术标签:
【中文标题】如何在 Ubuntu 上安装 lxml【英文标题】:How to install lxml on Ubuntu 【发布时间】:2011-09-24 04:35:39 【问题描述】:我在 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/.
2.6.27
和 2.6.29
和 libxml2
两个版本我都试过了,没有区别。
千方百计,我已经成功完成sudo apt-get install libxml2-dev
,但这并没有改变。
【问题讨论】:
【参考方案1】:由于您使用的是 Ubuntu,因此不必为这些源程序包烦恼。只需使用 apt-get 安装这些开发包。
apt-get install libxml2-dev libxslt1-dev python-dev
如果您对可能较旧版本的 lxml 感到满意,您可以尝试
apt-get install python-lxml
并完成它。 :)
【讨论】:
这个答案应该添加到 lxml 安装说明 :) 谢谢 +1 在运行apt-get install libxml2-dev libxslt-dev
之后,你可以直接easy_install lxml
在最新的类似 ubuntu 的发行版中,你必须安装 libxslt1-dev 而不是 libxslt-dev
至少在 Ubuntu 14.04 上你还必须安装包 zlib1g-dev
。
在 Ubuntu 16.04 上也需要 zlib1g-dev
。没有这个我得到错误/usr/bin/ld: cannot find -lz
。【参考方案2】:
我还必须在 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
【讨论】:
+1。即使在安装了所有其他提到的包之后,也需要这个包。 是的,我在 13.04 也需要这个 为什么它需要 lib32 包的 headers?也许 zlib1g-dev 也可以工作? 在 ubuntu 13.04 上需要 zlib1g-dev 在 14.04 64 位上也需要。【参考方案3】:正如@Pepijn 评论@Druska 的回答,在ubuntu 13.04 x64 上,不需要使用lib32z1-dev,zlib1g-dev 就足够了:
sudo apt-get install libxml2-dev libxslt-dev python-dev zlib1g-dev
【讨论】:
【参考方案4】:我使用 Ubuntu 14.04 在 Vagrant 中使用 pip 安装了 lxml,但遇到了同样的问题。即使安装了所有要求,我还是一次又一次地遇到相同的错误。事实证明,我的虚拟机默认只有很少的内存。 1024 MB 一切正常。
将此添加到您的 VagrantFile 和 lxml 应该正确编译/安装:
config.vm.provider "virtualbox" do |vb|
vb.memory = 1024
end
感谢 Sixhobbit 的提示(参见:can't installing lxml on Ubuntu 12.04)。
【讨论】:
这对我有用。谢谢。它说编译失败,状态为 4,以防对其他人有帮助。 这个答案与OP的问题无关【参考方案5】:第 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
【讨论】:
这是唯一适用于 ubuntu 20.04 的选项【参考方案6】:适用于 Ubuntu 14.04
sudo apt-get install python-lxml
为我工作。
【讨论】:
这是个坏消息。我已经从这个问题中获得了 1000 多个代表,如果他们已经修复它将停止获得视图......?【参考方案7】:安装 AKX 提到的软件包后,我仍然遇到同样的问题。解决了
apt-get install python-dev
【讨论】:
【参考方案8】:对于 Ubuntu 12.04.3 LTS(精确穿山甲),我必须这样做:
apt-get install libxml2-dev libxslt1-dev
(注意 libxslt1-dev 中的“1”)
然后我刚刚用 pip/easy_install 安装了 lxml。
【讨论】:
【参考方案9】:从 Ubuntu 18.4 (Bionic Beaver) 开始,建议使用 apt 而不是 apt-get,因为它具有更好的结构形式。
sudo apt install libxml2-dev libxslt1-dev python-dev
如果您对可能较旧的lxml
版本感到满意,您可以尝试
sudo apt install python-lxml
【讨论】:
【参考方案10】:首先安装 Ubuntu 的 python-lxml
包及其依赖项:
sudo apt-get install python-lxml
然后使用pip
升级到最新版本的lxml for Python:
pip install lxml
【讨论】:
只有代码的答案是不受欢迎的。添加一些解释 虽然这个答案可能是正确的,但请添加一些解释。传递底层逻辑比仅仅提供代码更重要,因为它可以帮助 OP 和其他读者自己解决这个问题和类似问题。 投反对票,因为没有任何新内容被添加到已经有几个好答案的问题中。【参考方案11】:这里的很多答案都比较老了, 感谢来自@Simplans (https://***.com/a/37759871/417747) 和home page 的指针...
什么对我有用(Ubuntu 仿生):
sudo apt-get install python3-lxml
(+ sudo apt-get install libxml2-dev libxslt1-dev
我在它之前安装过,但不确定这是否仍然是要求)
【讨论】:
是的,旧问题的旧答案。我的意思是,当我问的时候,我在 Ubuntu 11 上! 是的,我怀疑你甚至不能再在这里问它(将被转移到 ubuntu 等),但它仍然在跟踪很多网络搜索。并且怀疑是否有人仍在使用 Ubuntu 11 :)。然后是旧的 linux 版本和软件包不兼容,希望有一天能改善。以上是关于如何在 Ubuntu 上安装 lxml的主要内容,如果未能解决你的问题,请参考以下文章
Python 2.7.6 安装lxml模块[ubuntu14.04 LTS]
ubuntu下的python网页解析库的安装——lxml, Beautiful Soup, pyquery, tesserocr