2016-05-25 22 views
6

Bu benim görünümdür: Dlopen() kütüphane yüklenemedi: cairo/cairo-2

from django.conf import settings 
from django.http import HttpResponse 
from django.template.loader import render_to_string 
import weasyprint 



    @staff_member_required 
    def admin_order_pdf(request, order_id): 
     order = get_object_or_404(Order, id=order_id) 
     html = render_to_string('orders/order/pdf.html', {'order': order}) 
     response = HttpResponse(content_type='application/pdf') 
     response['Content-Disposition'] = 'filename="order_{}.pdf"'.format(order.id) 
     weasyprint.HTML(string=html).write_pdf(response, 
               stylesheets=[weasyprint.CSS(settings.STATIC_ROOT + 'css/pdf.css')]) 
     return response 

i bana bir hata veriyor (ithalat weasyprint) almak istediğiniz

.

ERROR: 

Request Method: GET 
Request URL: http://127.0.0.1:8000/admin/orders/order/ 
Django Version: 1.8.6 
Exception Type: OSError 
Exception Value:  
dlopen() failed to load a library: cairo/cairo-2 

Weasyprint ve cairocffi'yi zaten yükledim. Osx EI CAPITAN kullanıyorum.

cevap

4

Ben de OSX El Capitan üzerinde weasyprint taze yüklemesinde aynı sorunu vardı. Bu şekilde çözdüm. Öncelikle

, kahire pip aracılığıyla yüklendiğinde tarafından bulunan, bu yüzden bu kez

brew install cairo pango gdk-pixbuf libxml2 libxslt libffi 

yapılır aşağıdaki komutunu kullanarak homebrew aracılığıyla yüklemeden çalıştı değildi, ben kahire yükleme yolunu bulmaya çalıştı. Benim durumumda için konum ben

sadece benim DYLD kütüphane yoluna Sonra

export DYLD_LIBRARY_PATH=/usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/ 

Ben kaldırıldı bu ihraç ve tekrar weasyprint yüklü /usr/local/homebrew/Cellar/cairo/1.14.6_1/lib/ oldu Ben weasyprint çalıştırmayı denedim, ama nesne kütüphanenin yerini saptamaya çalıştık yeni hata

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 

var

pip uninstall weasyprint 
pip install weasyprint 

Mesaj. o Bundan sonra/opt/lib/yerel ve set çare kütüphane yolu

export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib 

yılında, tekrar weasyprint çalışan çalıştı bulundu ve başkasının da yararlı bulacağını umuyorum

(test)anurag-mac:~ anurag$ weasyprint --version 
WeasyPrint version 0.31 

çalıştı. Yukarıdaki yöntem çalıştı rağmen

GÜNCELLEME-1

mysql piton bu nedenle hatayı vermeye başladı ve suçlu yedek kütüphane yolunu tanımlayan edildi. Bu yüzden bana gobject hata verdi

export DYLD_FALLBACK_LIBRARY_PATH=/opt/local/lib 

yine, o zaman kendi kurulum yerini bulma çalıştı bu çizgiyi kaldırıldı ve bu yaptıktan sonra 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/ 

eklenen, ben benzer hata var pango.

sudo apt-get install libpango1.0-0 
sudo apt-get install libcairo2 
sudo apt-get install libpq-dev 

Kontrol dışarı linkten bağımlılıkları: tüm hataları düzelttikten sonra, bu Bu Ubuntu aşağıdaki bağımlılıkları yükleyerek benim için çözüldü

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/ 
+0

Çok yardımcı, çok teşekkürler! – antoinet