我正在尝试在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
我查了一下,找到了另一个有类似error的人,我按照指示行事。仍然没有运气。然后我意识到我的计算机上有libxml2版本2.9.1。
这是否意味着我需要获得较旧的2.9.0版本的libxml2,或者还有其他什么?我可以使用apt-get找到2.9.1,但不能找到2.9.0。在开始这条路之前,我认为这里有人可能有更好的主意。
谢谢!
答案 0 :(得分:3)
只需安装在包裹下面。
对于Ubuntu
apt-get install libxslt-dev
对于Centos
yum install libxslt-devel
答案 1 :(得分:1)
我对Ubuntu没有多少专业知识,但这个问题肯定在lxml和libxml2和/或libxslt之间。运行python-docx时发生这种情况的唯一原因是导致导入lxml。
我会尝试卸载lxml并重新安装。我依稀记得用libxml2和libxslt进行lxml硬链接,但那是不久前的事了。这与lxml链接的内容和已安装的版本之间的版本不匹配是合理的。
如果没有做到这一点,我会更深入地了解libxml2和libxslt安装。这里有一些受欢迎的建议:How to install lxml on Ubuntu
对于拥有最新的lxml软件包,python-docx并不是特别挑剔,如果你可以使用它,那么它应该可以正常工作。