从lxml导入etree时出现libxml2 ImportError

Sco*_*ung 3 python lxml libxml2 libxslt python-docx

我正在尝试在Enthought Canopy中运行python-docx。我在VMWare Worstation 10上运行Ubuntu 14.04。每当我尝试从lxml导入docx或导入etree时,都会收到一个似乎与libxml2库有关的错误:

ImportError: /usr/lib/x86_64-linux-gnu/libxslt.so.1: symbol xmlBufUse, version   LIBXML2_2.9.0 not defined in file libxml2.so.2 with link time reference
Run Code Online (Sandbox Code Playgroud)

我四处查看,发现另一个人也遇到类似的错误,然后按照指示进行操作。仍然没有运气。然后我意识到我的计算机上有libxml2版本2.9.1。

这是否意味着我需要获取旧版本的libxml2 2.9.0,还是有其他问题?我可以使用apt-get找到2.9.1,但找不到2.9.0。在踏上这条路之前,我认为这里的某个人可能会有更好的主意。

谢谢!

小智 5

只需安装以下软件包即可。

对于Ubuntu

apt-get install libxslt-dev
Run Code Online (Sandbox Code Playgroud)

对于Centos

yum install libxslt-devel
Run Code Online (Sandbox Code Playgroud)


sca*_*nny 1

我对 Ubuntu 没有太多专业知识,但这个问题肯定是在 lxml 和 libxml2 和/或 libxslt 之间。运行 python-docx 时发生这种情况的唯一原因是导致 lxml 被导入。

我会尝试卸载 lxml 并重新安装。我依稀记得 lxml 与 libxml2 和 libxslt 硬链接,但那是不久前的事了。lxml 链接的版本与已安装的版本之间可能存在版本不匹配。

如果这不起作用,我会更深入地了解 libxml2 和 libxslt 安装。这里有一些流行的建议:How to install lxml on Ubuntu

python-docx 不会对是否有最新的 lxml 软件包非常挑剔,如果有一个可以通过 apt 获得的软件包,它应该可以正常工作。