在 pipenv 上安装 Weasyprint 所需的库(Windows 环境)

Install needed libraries for Weasyprint on pipenv (Windows environment)

为了开始使用 Wea​​syprint 生成文档,我按照以下说明将它安装在我的 Windows 机器上:
https://weasyprint.readthedocs.io/en/stable/install.html#step-5-run-weasyprint

在我的电脑上它可以工作,但我有一个 Django 项目,我想在其中集成这个库,我使用 pipenv。
如何在虚拟环境下安装必要的库?
我尝试将 pycairo 包的路径设置到 Pipfile 中,例如

pycairo= {path= "C:/Program Files/GTK3-Runtime Win64/bin/"}

但它仍然抛出错误:

OSError: dlopen() failed to load a library: cairo / cairo-2 / cairo-gobject-2 / cairo.so.2

我有 64 位 Windows 机器,这是 Pipfile:

[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true

[dev-packages]
pylint = "*"

[packages]
django = "*"
mysql = "*"
ipython = "*"
django-webpack = "*"
django-webpack-loader = "*"
django-livereload-server = "*"
pylint = "*"
reportlab = "*"
weasyprint = "*"
django-weasyprint = "*"
pycairo= {path= "C:/Program Files/GTK3-Runtime Win64/bin/"}
cairocffi = "*"

[requires]
python_version = "3.7"

您需要在此本地安装 'GTK+ 64 Bit Installer' 路径:

C:\msys2

来源:WeasyPrint Github

我也遇到了这个错误,并按照 Weasyprint 文档中提到的每个步骤进行安装。我使用 PowerShell 作为我的默认终端和 pipenv。首先,我尝试在我的 virtualenv 中使用 python shell 中的命令 import weasyprint,但它总是返回 cairo、dlopen() 等错误。

对我有用的是切换到 cmd。切换并使用相同的命令,现在它执行得很好。

此外,在我的 pipfile 中,对于 weasyprint,它足以在 django 中生成报告,我只安装了 weasyprint。在这个问题中,如果它仍然与某人相关,库 reportlabdjango-weasyprintpycairocairocffi 可以安全地来自 pipenv removed/uninstalled。

请输入以下命令:

  • WHERE libcairo-2.dll
  • 你应该得到 'C:\msys2\mingw64\bin\libcairo-2.dll'
  • 然后打开你的 cmd 并输入以下内容。

  • 设置PROPER_GTK_FOLDER=

  • 设置路径=%PROPER_GTK_FOLDER%;%PATH%

请按照 windows 上 运行 的所有文档进行操作。它对我有用,我希望它对你有用enter link description here