Tôi cũng có cùng một vấn đề về cài đặt mới của weasyprint trên OSX El Capitan. Đây là cách tôi giải quyết nó.
Thứ nhất, cairo không được tìm thấy bởi khi cài đặt qua pip, vì vậy tôi cố gắng cài đặt nó qua homebrew bằng cách sử dụng lệnh sau
brew install cairo pango gdk-pixbuf libxml2 libxslt libffi
Một khi điều này được thực hiện, tôi đã cố gắng để tìm ra con đường của cài đặt cairo. Đối với trường hợp của tôi, vị trí là /usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/ tôi chỉ xuất khẩu này để đường dẫn thư viện DYLD tôi
export DYLD_LIBRARY_PATH=/usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/
Sau đó, tôi gỡ bỏ cài đặt và cài đặt lại weasyprint
pip uninstall weasyprint
pip install weasyprint
bài viết đó, tôi đã cố gắng để chạy weasyprint, nhưng có một lỗi mới
Traceback (most recent call last):
File "/Users/anurag/VirtualEnvs/test/bin/weasyprint", line 11, in <module>
load_entry_point('WeasyPrint==0.31', 'console_scripts', 'weasyprint')()
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/pkg_resources/__init__.py", line 565, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2598, in load_entry_point
return ep.load()
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2258, in load
return self.resolve()
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2264, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/weasyprint/__init__.py", line 338, in <module>
from .css import PARSER, preprocess_stylesheet # noqa
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/weasyprint/css/__init__.py", line 30, in <module>
from . import computed_values
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/weasyprint/css/computed_values.py", line 18, in <module>
from .. import text
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/weasyprint/text.py", line 216, in <module>
'libgobject-2.0.dylib')
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/weasyprint/text.py", line 212, in dlopen
return ffi.dlopen(names[0]) # pragma: no cover
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/cffi/api.py", line 139, in dlopen
lib, function_cache = _make_ffi_library(self, name, flags)
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/cffi/api.py", line 770, in _make_ffi_library
backendlib = _load_backend_lib(backend, libname, flags)
File "/Users/anurag/VirtualEnvs/test/lib/python2.7/site-packages/cffi/api.py", line 759, in _load_backend_lib
return backend.load_library(name, flags)
OSError: cannot load library gobject-2.0: dlopen(gobject-2.0, 2): image not found
tôi đã cố gắng để tìm ra vị trí của thư viện đối tượng. Tìm thấy nó trong/opt/local/lib và thiết lập dự phòng thư viện đường
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
Sau đó, tôi đã cố gắng chạy weasyprint một lần nữa và nó làm việc
(test)anurag-mac:~ anurag$ weasyprint --version
WeasyPrint version 0.31
Tôi hy vọng người khác cũng thấy nó hữu ích.
CẬP NHẬT-1
Mặc dù phương pháp trên hiệu quả, mysql python bắt đầu đưa ra lỗi vì điều này và thủ phạm đã được xác định đường dẫn thư viện dự phòng. Vì vậy, tôi loại bỏ dòng này
export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib
đó đã cho tôi những lỗi gobject một lần nữa, sau đó tôi đã cố gắng tìm kiếm các vị trí lắp đặt và nối vào DYLD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=/usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/:/usr/local/homebrew/Cellar/glib/2.48.2/lib/
Sau khi làm điều đó, tôi đã nhận lỗi tương tự cho pango.Sau khi sửa chữa tất cả các lỗi, đây là đường dẫn thư viện chính thức mà làm việc
export DYLD_LIBRARY_PATH=/usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/:/usr/local/homebrew/Cellar/glib/2.48.2/lib/:/usr/local/homebrew/Cellar/pango/1.40.3/lib/
Rất hữu ích, cảm ơn rất nhiều! – antoinet