在python中安装lxml模块


88

在运行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

Answers:


106

做就是了:

sudo apt-get install python-lxml

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

sudo apt-get install python2-lxml

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


6
如果您使用的是虚拟环境,那么这不是正确的答案。
AlexLordThorsen

71

我解决了使用以下命令升级lxml版本的问题:

pip install --upgrade lxml

49

您需要安装Python的头文件(debian / ubuntu中的python-dev软件包)才能编译lxml。以及libxml2,libxslt,libxml2-dev和libxslt-dev:

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

2
以及libxml2-dev和libxslt-dev。
Lennart Regebro 2011年

1
libxslt似乎不是必需的(至少对我而言不是)。因此,apt-get install python-dev libxml2 libxml2-dev libxslt-dev应该足够了
Mathieu

我必须这样做才能安装WeasyPrint,仅对apt-getDebian 7的说明不起作用。
cnst 2014年

1
libxslt对我来说是必不可少的,没有它,lxml的安装将无法完成。
axil

32

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

pip3 install lxml


这对我有用!我使用的是python3,并通过安装了python早期版本的库pip。对于python3,我们应该使用pip3
维克多

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

我在Windows上。有什么办法吗?
保罗

使用“ python2.7.exe -m pip install --upgrade lxml”
Oni


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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.