我正在尝试在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版本。
这是否意味着我需要获得libxml2的较旧的2.9.0版本,或者发生了其他事情?我可以用apt-get找到2.9.1,但找不到2.9.0。在踏上这条路之前,我想这里有人可能有更好的主意。
谢谢!
安装下面的包。
Ubuntu的apt-get install libxslt-dev
Centos的yum install libxslt-devel
我对Ubuntu没有太多的专业知识,但这个问题肯定是在lxml和libxml2和/或libxslt之间。在运行python-docx时发生这种情况的唯一原因是这会导致lxml被导入。
我会尝试卸载lxml并重新安装。我隐约记得lxml与libxml2和libxslt的硬链接,但那是很久以前的事了。lxml所链接的版本与已安装的版本之间可能存在版本不匹配。
如果这还不行,我将更深入地研究libxml2和libxslt的安装。这里有一些流行的建议:如何在Ubuntu上安装lxml
python-docx并不会对最新的LXML包非常挑剔,如果有一个您可以用apt获得的LXML包,它应该可以很好地工作。