lxml 运行时错误:原因:库版本不兼容:etree.so 需要 12.0.0 或更高版本,但 libxml2.2.dylib 提供 10.0.0
我遇到了一个让人困惑的问题。
我使用的是mac版本10.9,anaconda 3.4.1,python 2.7.6。
我正在用python-amazon-product-api开发一个网页应用程序。我之前在安装lxml时遇到了一些障碍,参考了这个链接:clang错误:未知参数:'-mno-fused-madd'(python包安装失败)。
但是又出现了另一个运行时错误。
这是来自webbrowser的输出。
Exception Type: ImportError
Exception Value:
dlopen(/Users/User_Name/Documents/App_Name/lib/python2.7/site-packages/lxml/etree.so, 2): Library not loaded: libxml2.2.dylib
Referenced from: /Users/User_Name/Documents/App_Name/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
我不确定接下来该怎么做,已经在这里和其他地方搜索过这个特定的错误。
6 个回答
0
可以考虑在conda中使用其他的渠道。
$ anaconda search -t conda pyquery
Using anaconda-server api site https://api.anaconda.org
Run 'anaconda show <USER/PACKAGE>' to get more details:
Packages:
Name | Version | Package Types | Platforms
------------------------- | ------ | --------------- | ---------------
CS109/pyquery | 1.2.9 | conda | linux-64, win-32, win-64, linux-32, osx-64
: A jquery-like library for python
asmeurer/pyquery | 1.2.6 | conda | osx-64
: https://github.com/gawel/pyquery
auto/pyquery | 1.2.8 | conda | linux-64, linux-32, osx-64
: https://github.com/gawel/pyquery
dan_blanchard/pyquery | 1.2.6 | conda | linux-64
: https://github.com/gawel/pyquery
hargup/pyquery | | conda | None-None, linux-64
: A jquery-like library for python
meloncholy/pyquery | 1.2.9 | conda | linux-64
: A jquery-like library for python
mhworth/pyquery | 1.2.8 | conda | linux-64, osx-64
: A jquery-like library for python
nbsantos/pyquery | 1.2.9 | conda | osx-64
: A jquery-like library for python
pdrops/pyquery | 1.2.8 | conda | linux-64, osx-64
: A jquery-like library for python
ziebel/pyquery | 1.2.9 | conda | linux-64
: A jquery-like library for python
Found 10 packages
然后,选择一个渠道,执行:
conda install pyquery -c CS109
8
我通过以下方式让这个工作:
conda install libxml2
42
如果你在使用conda,可以强制重新安装 lxml
:
$ conda install -f lxml
需要注意的是,强制重新安装可能会带来一些意想不到的问题。
我最开始尝试用 conda update lxml
,但是没有效果。
然后我又试了 conda install lxml
,同样没有效果(不过那是很久以前的事,结果可能会有所不同——见评论)。
102
这个对我有效:
brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force
11
我之前也遇到过这个问题。我发现,在我为我的网页应用安装库的时候,lxml 正在尝试以下操作:
“在这个目录下构建:/Users/[me]/anaconda/lib”
我不太确定具体原因,但当我把 anaconda/bin 从我的系统路径中移除(因为安装时 anaconda 会自动加进去)后,我就能顺利地安装 lxml 了。之后,你应该可以在没有问题的情况下再把 anaconda/bin 加回到系统路径中。