Ошибка времени выполнения 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).

но произошла другая ошибка во время выполнения. Вот вывод из веб-браузера.

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 ответов

Решение

У меня была такая же проблема. Я понял, что во время установки pip для моего веб-приложения lxml пытался сделать следующее:

"Сборка против libxml2/libxslt в следующем каталоге: /Users/[me]/anaconda/lib"

Не уверен на 100%, почему, но как только я удалил anaconda / bin из системного пути в bash_profile (anaconda вставляет его туда при установке), я смог правильно установить lxml в pip. После чего вы сможете без проблем добавить anaconda / bin в системный путь.

Это сработало для меня:

brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force

Если вы используете conda, принудительно переустановите lxml:

$ conda install -f lxml

Обратите внимание, что принудительная переустановка может иметь непредвиденные последствия.

Я впервые попробовал conda update lxml безрезультатно.

Потом попробовал conda install lxml также безрезультатно (но это было некоторое время назад и ymmv - см. комментарий).

Я заставляю это работать следующим образом:

conda install libxml2

Подумайте об использовании альтернативного канала в Конде.

$ 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

Я попробовал почти все подходы выше и потерпел неудачу. Что работало для меня, так это комментировать

export DYLD_LIBRARY_PATH=/usr/lib

в моем профиле Bash. Эта строка добавляется установщиком Anaconda автоматически.

Другие вопросы по тегам