在具有python版本2.7.6的Ubuntu Server 14.04上的python中没有名为libxml2的模块错误

时间:2014-05-29 09:15:24

标签: python

我尝试执行时遇到问题:

myuser@my-pc:~$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import libxml2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named libxml2

我已经安装了python-dev libxml2 libxml2-dev libxslt-dev个软件包,因为我在互联网上发现了很多关于我的问题的这些软件包的建议,但没有结果。

同时在我的ubuntu桌面上没有任何更改,我可以成功地执行&#39;导入libxml2&#39;使用python2.7命令行

请问您如何解决此问题?

2 个答案:

答案 0 :(得分:3)

您安装的软件包不包含 Python绑定libxml2。您已经按照注释中的说明安装了共享对象库,但是没有Python模块的Python程序无法使用它。

安装python-dev libxml2 libxml2-dev libxslt-dev听起来就像是要从源代码构建Python模块,因此请查看您所关注的说明是否包含其他步骤。

我相信这是您需要的模块的页面http://xmlsoft.org/python.html。有关如何在OS-X上安装主要适用于Linux的说明,请参阅此SO答案https://stackoverflow.com/a/9797504/66349

答案 1 :(得分:3)

您正在尝试安装共享对象库;这些包不包含Python绑定。

如果/usr/lib/python2.7/dist-packages中安装了另一台服务器上的Python软件包,那么该机器可能已安装python-libxml2。它的included file list肯定与你在另一台机器上的相匹配:

/usr/lib/python2.7/dist-packages/drv_libxml2.py
/usr/lib/python2.7/dist-packages/libxml2.py
/usr/lib/python2.7/dist-packages/libxml2mod.so

为了将来参考,每当遇到您不熟悉的Python库时,您可以使用以下方法检查模块文件路径:

import modulename
print modulename.__file__

如果这是一个Ubuntu软件包,您可以搜索它所属的软件包:

dpkg -S /path/to/file

但考虑到以.pyc结尾的文件是字节码缓存;相反,寻找.py等价物。