我正在尝试在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的新手。请提供任何线索来调试此问题。
答案 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
为前缀进行全局安装)来安装它。