django OSErerror:cannot load library 'gobject-2.0':错误0x 7 e

wsewodh2  于 2023-08-08  发布在  Go
关注(0)|答案(5)|浏览(517)

我按照安装weasypprint的说明安装了weasypprint包(Django项目)。我的系统:赢10。我已经安装了gtk 3,它出现在我的PATHx1c 0d1x中

import weasyprint
...
@staff_member_required
def order_admin_pdf(request, order_id):
    # Получаем заказ по ID:
    order = get_object_or_404(Order, id=order_id)
    # Передаем объект в функцию render_to через генерацию шаблона pdf.html HTML в виде строки:
    html = render_to_string('shop/orders/order_admin_pdf.html',
                            {'order': order})
    # Создаем объект овтета с типом содержимого application/pdf и заголовком Content-Disposition:
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'filename=order_{}.pdf"'.format(order.id)
    # Вызов метода weasyprint для получения PDF документа:
    weasyprint.HTML(string=html).write_pdf(response,
                                           stylesheets=[weasyprint.CSS(
                                               settings.STATIC_ROOT + 'css/pdf.css')])
    return response

字符串
OSErerror:cannot load library 'gobject-2.0':错误0x 7 e。此外,ctypes.util.find_library()没有找到一个名为“gobject-2.0”的库

cnwbcb6i

cnwbcb6i1#

从Python 3.8开始,扩展模块的DLL依赖关系和Windows上使用ctypes加载的DLL现在可以更安全地解决。只有系统路径、包含DLL或PYD文件的目录以及使用add_dll_directory()添加的目录才会搜索加载时依赖项。* 特别是,PATH和当前工作目录不再被使用 *,并且对它们的修改将不再对正常的DLL解析产生任何影响。
如果您按照官方文档中的安装指南进行操作,那么下面的示例可以使用。

import os

os.add_dll_directory(r"C:\Program Files\GTK3-Runtime Win64\bin")

from weasyprint import HTML

HTML('https://weasyprint.org/').write_pdf('weasyprint-website.pdf')

字符串
本质上,你需要在与WeasyPrint交互之前调用add_dll_directory()

pod7payv

pod7payv2#

我绝望了,决定安装库gtk 2 C:\Program Files (x86)\GTK2\lib\,并在PATH列表中指定第一个。成功了...但是我的操作系统- win 10 x64。为什么图书馆GTK 3拒绝工作,我不知道。

cygmwpex

cygmwpex3#

对我来说,这是关于env变量设置不正确。
我不得不在Windows中添加GTK3作为System env变量,以便我的项目工作(Windows 10)。

b4lqfgs4

b4lqfgs44#

这对MacOS有帮助。基本上,你必须创建几个链接。
sudo ln -s /opt/homebrew/opt/glib/lib/libgobject-2.0.0.dylib /usr/local/lib/gobject-2.0
sudo ln -s /opt/homebrew/opt/pango/lib/libpango-1.0.dylib /usr/local/lib/pango-1.0
sudo ln -s /opt/自制/opt/harfbuzz/lib/libharfbuzz.dylib /usr/local/lib/harfbuzz
sudo ln -s /opt/homebrew/opt/fontconfig/lib/libfontconfig.1.dylib /usr/local/lib/fontconfig-1
sudo ln -s /opt/homebrew/opt/pango/lib/libpangoft2-1.0.dylib /usr/local/lib/pangoft2-1.0
https://github.com/Kozea/WeasyPrint/issues/1556#issuecomment-1097977671

gpnt7bae

gpnt7bae5#

我用weasyprint库为windows10做了一个django网站。还安装了GTK+ for Windows Runtime Environment(版本3)。同样的错误被抛出。
我试图在路径中交换路径,更新窗口到11,但它没有帮助。然后我将'sitecomize.py'像Tontynahttps://www.example.com一样粘贴github.com/Kozea/WeasyPrint/issues/971#issuecomment-544195744到虚拟环境文件夹'/Lib/site-packages'中,
发生另一个错误:Fontconfig错误:无法加载默认配置文件。
原来,正在加载“C:\Users\anaconda3\fontconfig.dll”库。
在文件'sitecomize.py'中,我更改了行:os.environ['PATH'] = GTK_FOLDER + os.pathsep + os.environ.get('PATH', '')到行:os.environ['PATH'] = GTK_FOLDER和它的工作

相关问题