2013-08-28 26 views
9

Thư viện python mà tôi đang sử dụng sử dụng libxml2.2.dylib. Tôi nhận được thông báo lỗi này:tham chiếu libxml2.2.dylib trong chương trình python

Lý do: phiên bản

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

Hệ thống của tôi của libxml2.2.dylib cũ và đang trong /usr/lib/. Tôi đã tải xuống phiên bản libxml2.2.dylib mới nhất bằng cách sử dụng homebrew và có nghĩa là trong /usr/local/Cellar/libxml2/2.9.1/lib/.

Tôi muốn ứng dụng Python của tôi sử dụng phiên bản đó thay vì phiên bản mà hệ thống sử dụng.

Đây có phải là vấn đề thêm thư mục homebrew vào đường dẫn không?

Trả lời

5

Hãy thử làm theo hướng dẫn here để xây dựng lxml với phụ thuộc tĩnh. Bằng cách này, bạn không phải lo lắng về phiên bản của libxml2 hoặc libxslt nó được liên kết với.

Nó có thể đun sôi xuống

STATIC_DEPS=true pip install -U lxml 
+0

tôi đã cố gắng này và chỉ quấn lên ném một ImportError lxml liên quan mới, ví dụ: ImportError:. Dlopen (/ Users/[tôi]/envs/[virtualenv]/lib/python2.7/site-packages/lxml/etree.so, 2): Biểu tượng không tìm thấy: _lzma_auto_decoder – daroo

+0

bạn đã tạo virtualenv _before_ cài đặt phiên bản tĩnh của lxml trong hệ thống Pyhon chưa? trong trường hợp đó tôi nghi ngờ các venv đã nhập vấn đề khi tạo ra – oDDsKooL

+0

thú vị điều này giải quyết một vấn đề khác: /lib/python3.5/site-packages/lxml/etree.cpython-35m-darwin.so Lý do: Phiên bản thư viện không tương thích: etree.cpython-35m-darwin.so yêu cầu phiên bản 12.0.0 trở lên, nhưng libxml2.2.dylib cung cấp phiên bản 10.0.0 –

Các vấn đề liên quan