2013-08-28 14 views
9

Kullanmakta olduğum bir python kitaplığı, libxml2.2.dylib dosyasını kullanır. Bu hata mesajını alıyorum:python programında libxml2.2.dylib referansı

Sebep: libxml2.2.dylib ait

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

My sisteminin sürümü eskidir ve /usr/lib/ içindedir. Homebrew kullanarak libxml2.2.dylib dosyasının en yeni sürümünü indirdim ve bu /usr/local/Cellar/libxml2/2.9.1/lib/.

Python uygulamamın, sistemin kullandığı sistem yerine bu sürümü kullanmasını istiyorum.

Bu, homebrew klasörünü yola ekleme meselesi mi?

cevap

5

Statik bağımlılıklar ile lxml oluşturmak için here numaralı yönergeleri izleyin. Bu şekilde, libxml2 veya libxslt'un hangi sürümünün bağlantılı olduğuna dair endişeniz olmasın.

O

STATIC_DEPS=true pip install -U lxml 
+0

Bu çalıştı ve sadece yeni Lxml ilgili ImportError atma tasfiye aşağı kaynatın, yani: ImportError. Dlopen (/ Users/[me]/ENV/[Virtualenv]/lib/python2.7/site-packages/lxml/etree.so, 2): Sembol bulunamadı: _lzma_auto_decoder – daroo

+0

sisteminizi Pyhon sisteminizde lxml'nin statik bir sürümünü yüklemek için virtualenv'i _before_ oluşturdunuz mu? Bu durumda vesilesi, yaratılış üzerine – oDDsKooL

+0

nolu problemi ithal ettiğinden şüpheleniyorum, bu durum başka bir sorunu çözüyor: /lib/python3.5/site-packages/lxml/etree.cpython-35m-darwin.so Nedeni: Uyumsuz kütüphane sürümü: etree.cpython-35m-darwin.so, 12.0.0 veya sonraki bir sürümü gerektirir, ancak libxml2.2.dylib, 10.0.0 sürümü sağlar –