在Fedora上运行python脚本时没有名为lxml.html的模块

时间:2014-01-08 19:37:25

标签: python linux lxml fedora

我正在尝试在Fedora Server上运行python脚本。我收到以下错误。

/usr/bin/python report_generation.py
Traceback (most recent call last):
File "report_generation.py", line 9, in ?
import lxml.html
ImportError: No module named lxml.html

做一些研究,我发现它需要python-lxml包来运行脚本。这台机器已经安装了一些lxml。但是,我无法做到这一点。

yum search libxml

libxml2.i386 : Library providing XML and HTML support
libxml2.x86_64 : Library providing XML and HTML support
libxml2-devel.i386 : Libraries, includes, etc. to develop XML and HTML applications
libxml2-devel.x86_64 : Libraries, includes, etc. to develop XML and HTML applications
libxml2-python.x86_64 : Python bindings for the libxml2 library
libxslt.i386 : Library providing the Gnome XSLT engine
libxslt.x86_64 : Library providing the Gnome XSLT engine
libxslt-devel.i386 : Libraries, includes, etc. to embed the Gnome XSLT engine
libxslt-devel.x86_64 : Libraries, includes, etc. to embed the Gnome XSLT engine
libxslt-python.x86_64 : Python bindings for the libxslt library

此外,它说当我尝试安装软件包时,所有这些都是最新的。出于某种原因,它没有拿起lxml模块并在运行脚本时抛出此错误。 我是Linux和Python的新手。请提供任何线索来调试此问题。

3 个答案:

答案 0 :(得分:10)

sudo yum install python-lxml 

sudo apt-get install python-lxml

答案 1 :(得分:8)

查看libxml2-python包,很明显是libxml2的Python绑定,而不是第三方lxml绑定。这些相同的东西,它们完全分开维护。

正如the docs所说:

  

该发行版包含一组Python绑定,保证将来作为库的一部分进行维护,尽管Python接口尚未达到C API的完整性。

     

请注意,一些Python纯粹主义者不喜欢默认的Python绑定集,而不是抱怨我建议他们看看lxml更多pythonic绑定libxml2和libxslt并检查邮件列表。


你怎么知道libxml2-python是前者而不是后者?好吧,链接是http://xmlsoft.org而不是http://lxml.de。如果您查看files,它会安装名称为libxml2.py而不是lxml的内容。

因此,您无法导入lxml,因为您没有安装lxml。

根据rpmfind,有各种发行版的python-lxml个包。如果有一个适合您的,请安装,而不是(或者除此之外,如果您需要)libxml2-python

如果没有,您可能希望使用pip进行安装。假设您已安装pip,请执行以下操作:

sudo pip install lxml

答案 2 :(得分:1)

lxml包需要与您可能已安装的任何libxml库分开安装。使用pip install lxml(可选地以sudo为前缀进行全局安装)来安装它。