6

我正在尝试在 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

我检查了一下,发现另一个人有类似的错误,我按照指示进行操作。仍然没有运气。然后我意识到我的电脑上有 libxml2 版本 2.9.1。

这是否意味着我需要获取较旧的 2.9.0 版本的 libxml2,还是发生了其他事情?我可以用 apt-get 找到 2.9.1,但不是 2.9.0。在踏上这条路之前,我想这里有人可能有更好的主意。

谢谢!

4

2 回答 2

11

只需安装以下软件包。

对于 Ubuntu

apt-get install libxslt-dev

对于 Centos

yum install libxslt-devel
于 2016-11-11T06:46:00.353 回答
1

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

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

如果这不能解决问题,我会更深入地研究 libxml2 和 libxslt 安装。这里有一些流行的建议:如何在 Ubuntu 上安装 lxml

python-docx 不会对拥有最新的 lxml 包非常挑剔,如果有一个你可以用 apt 得到的包,它应该可以正常工作。

于 2014-07-11T07:05:44.587 回答