Python weasyprint не может найти библиотеку 'gobject-2.0-0'

В процессе инсталляции для Saleor безголовой электронной коммерции пакет Python Weasyprint не загружает зависимость gobject-2.0.0, которую я уже установил на своей машине с помощью Macport.

Ниже приведен исходный код, показывающий, откуда исходит ошибка после запуска сервера Django. Файл содержит утилитарные функции для генерации счетов для плагина.

utils.py

plugins.py

from typing import Any, Optional
from uuid import uuid4

from django.core.files.base import ContentFile
from django.utils.text import slugify

from ...core import JobStatus
from ...invoice.models import Invoice
from ...order.models import Order
from ..base_plugin import BasePlugin
from .utils import generate_invoice_number, generate_invoice_pdf


class InvoicingPlugin(BasePlugin):
    PLUGIN_ID = "mirumee.invoicing"
    PLUGIN_NAME = "Invoicing"
    DEFAULT_ACTIVE = True
    PLUGIN_DESCRIPTION = "Built-in saleor plugin that handles invoice creation."
    CONFIGURATION_PER_CHANNEL = False

    def invoice_request(
        self,
        order: "Order",
        invoice: "Invoice",
        number: Optional[str],
        previous_value: Any,
    ) -> Any:
        invoice_number = generate_invoice_number()
        invoice.update_invoice(number=invoice_number)
        file_content, creation_date = generate_invoice_pdf(invoice)
        invoice.created = creation_date
        slugified_invoice_number = slugify(invoice_number)
        invoice.invoice_file.save(
            f"invoice-{slugified_invoice_number}-order-{order.id}-{uuid4()}.pdf",
            ContentFile(file_content),  # type: ignore
        )
        invoice.status = JobStatus.SUCCESS
        invoice.save(
            update_fields=[
                "created_at",
                "number",
                "invoice_file",
                "status",
                "updated_at",
            ]
        )
        return invoice

Чтобы решить эту проблему, я последовал инструкции this по созданию симлинка, что я и сделал и указал на него в окружении path на моей машине, но это не решило проблему. Значит ли это, что Django не проверяет наличие depenecy, используя окружение path?

Также стоит отметить, что инсталляция Python и weasyprint с помощью Homebrew устранила бы проблему, но я не использую Home, потому что у меня MacOS Catalina 10.15, которая больше не поддерживается, поэтому версия для нее нестабильна в использовании.

Я знаю, что зависимость находится на моей машине, но было трудно указать на нее? Что я делаю неправильно?

Я занимаюсь этим уже несколько дней!

После многих дней выяснилось, что это обычная проблема, возникающая при использовании пакета Python Weasyprint. Это происходит, когда вы устанавливаете Python и необходимые системные зависимости с помощью разных программ установки. В моем случае я использовал системный установщик для Python и установщик Macport для зависимостей, что и вызвало проблему. К счастью, уже существуют ответы для решения этой проблемы, но я нашел этот один особенно полезным.

Вернуться на верх