在Ubuntu Server 14.04上,Python 2.7.6出现'No module named libxml2'错误
我在尝试执行以下代码时遇到了问题:
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桌面上,没有任何更改的情况下,我可以成功地在python2.7命令行中使用 'import libxml2'。
你能给我一些建议,告诉我该如何解决这个问题吗?
2 个回答
3
你安装的包里没有包含Python绑定到libxml2
。你按照评论里的说法安装了共享库,但没有Python模块的话,Python程序是无法使用这个库的。
安装python-dev libxml2 libxml2-dev libxslt-dev
听起来像是你准备从源代码构建Python模块,所以看看你正在跟随的说明里是否有其他步骤。
我认为你需要的模块页面在这里:http://xmlsoft.org/python.html。你可以查看这个SO的回答,里面有关于如何在OS-X上安装的说明,大部分也适用于Linux:https://stackoverflow.com/a/9797504/66349
3
你正在尝试安装共享对象库,但这些包不包含Python的绑定。
如果另一个服务器上的Python包安装在 /usr/lib/python2.7/dist-packages
这个路径下,那么那台机器上可能安装了 python-libxml2
。它的 文件列表 肯定和你在另一台机器上看到的匹配:
/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
结尾的文件。