102

在运行 python 脚本时,我收到了这个错误

  from lxml import etree
ImportError: No module named lxml

现在我尝试安装 lxml

sudo easy_install lmxl

但它给了我以下错误

Building lxml version 2.3.beta1.
NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available.
ERROR: /bin/sh: xslt-config: not found

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

使用 libxslt 的构建配置

src/lxml/lxml.etree.c:4: fatal error: Python.h: No such file or directory
compilation terminated.
error: Setup script exited with error: command 'gcc' failed with exit status 1
4

7 回答 7

112

做就是了:

sudo apt-get install python-lxml

对于 Python 2(例如,Inkscape 需要):

sudo apt-get install python2-lxml

如果您打算从源代码安装,那么albertov 的回答会有所帮助。但除非有原因,否则不要,只需从存储库安装它。

于 2011-01-04T20:57:27.657 回答
87

我解决了升级 lxml 版本的问题:

pip install --upgrade lxml
于 2013-09-26T17:51:58.183 回答
50

你需要安装 Python 的头文件(debian/ubuntu 中的 python-dev 包)来编译 lxml。以及 libxml2、libxslt、libxml2-dev 和 libxslt-dev:

apt-get install python-dev libxml2 libxml2-dev libxslt-dev
于 2011-01-04T20:54:53.683 回答
39

如果您正在运行 python3,则必须执行以下操作:

pip3 install lxml

于 2016-05-02T20:13:29.253 回答
6

对于 python 3,这对我有用

sudo apt-get install python3-lxml
于 2020-09-10T16:38:46.693 回答
5

对于 RHEL/CentOS,运行“python --version”命令来查看 Python 版本。例如下面:

$ python --version 
  Python 2.7.12

现在运行“sudo yum search lxml”来查找 python*-lxml 包。

$ sudo yum search lxml
Failed to set locale, defaulting to C
Loaded plugins: priorities, update-motd, upgrade-helper
1014 packages excluded due to repository priority protections
============================================================================================================= N/S matched: lxml =============================================================================================================
python26-lxml-docs.noarch : Documentation for python-lxml
python27-lxml-docs.noarch : Documentation for python-lxml
python26-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt
python27-lxml.x86_64 : ElementTree-like Python bindings for libxml2 and libxslt

现在您可以根据您的 Python 版本选择包并运行如下命令:

$ sudo yum install python27-lxml.x86_64
于 2017-02-21T12:26:46.150 回答
0

如果您在基于 Alpine 的图像上遇到此问题,请尝试以下操作:

apk add --update --no-cache g++ gcc libxml2-dev libxslt-dev python-dev libffi-dev openssl-dev make

// pip install -r requirements.txt

于 2020-02-11T11:41:20.203 回答