Python错误消息"不兼容的库版本" libxml和etree.so

时间:2016-05-20 19:06:39

标签: python virtualenv libxml2

更新2:

主要问题与我原来的问题不同,并在此寻求帮助。我把新问题转到了一个新帖子:

Install custom python package in virtualenv

更新 好的,所以我意外搞砸了我的非虚拟玩家。 非virtualenv(普通bash)我可以通过删除手动安装(通过点子)lxml并运行

轻松修复
conda install lxml --force

但出于某种原因,这在virtualenv中并不起作用。 在那里,正在运行

    conda install lxml --force

没有错误信息,但是当我运行python并简单地说

>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named lxml

有什么建议吗?

旧消息:

我试图将virtualenv用于我的python flask应用程序。 没有virtualenv,python代码运行得很好。

我已经在virtualenv中安装了我需要的软件包,但是我通过

安装了lxml之后
pip install lxml
Installing collected packages: lxml
Successfully installed lxml-3.6.0

运行我的代码时收到以下错误消息:

  File "/Users/XXX/xxx/flask-aws/lib/python2.7/site-packages/docx-0.2.4-py2.7.egg/docx.py", line 17, in <module>
from lxml import etree

ImportError: dlopen(/Users/XXX/xxx/flask-aws/lib/python2.7/site-packages/lxml/etree.so, 2): Library not loaded: libxml2.2.dylib
  Referenced from: /Users/XXX/xxx/flask-aws/lib/python2.7/site-packages/lxml/etree.so

  Reason: Incompatible library version: etree.so requires version 12.0.0 or later, but libxml2.2.dylib provides version 10.0.0

我看到其他人在stackoverflow上报告了类似的问题,有一个人说这个问题可能与virtualenv有关,但是没有解决方案。

再一次:python代码完美运行罚款没有virtualenv !但是在virtualenv中,我无法让它发挥作用。

我在Mac上使用Anaconda Python 2.7。

我很感激任何帮助人员!

2 个答案:

答案 0 :(得分:18)

我遇到了同样的错误,在找到不兼容的库错误后发现了这个link&#34; libxml2.2.dylib提供了版本10.0.0&#34;

安装适合我的libxml2:

brew install libxml2 
brew link --force libxml2

答案 1 :(得分:0)

在虚拟环境中对我有用的解决方案是强制pip重新编译lxml

pip install lxml --force-reinstall --ignore-installed --no-binary :all: