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

时间:2019-07-14 09:36:49

标签: python django weasyprint

为了开始使用Weasyprint生成文档,我按照以下说明将其安装在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"

3 个答案:

答案 0 :(得分:0)

您需要在此本地安装“ GTK + 64位安装程序”路径:

  

C:\ msys2

来源:WeasyPrint Github

答案 1 :(得分:0)

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

对我有用的是切换到cmd。切换并使用相同的命令,现在它可以完美执行。

此外,在我的pip文件中,对于weasyprint(足以在django中生成报告)而言,我仅安装了weasyprint。问题是,如果它仍然与某人相关,则可以安全地从pipenv中删除/卸载库reportlabdjango-weasyprintpycairocairocffi

答案 2 :(得分:-2)

请输入以下命令:

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

  • SET PROPER_GTK_FOLDER =

  • SET PATH =%PROPER_GTK_FOLDER%;%PATH%

请遵循其所有内容均可在Windows上运行的文档。它对我有用,我希望它对您有用enter link description here