标签: weasyprint

gobject-2.0-0 无法在 macbook 上加载

当我在 Python3 和 Mac OS 上启动 Flask 应用程序时,遇到此错误:

OSError:无法加载库“gobject-2.0-0”:dlopen(gobject-2.0-0, 2):找不到图像。此外,ctypes.util.find_library() 无法找到名为“gobject-2.0-0”的库

weasyprint在我的项目中使用它导致了这个问题。

我尝试安装glib,它已安装在我的系统中。

glib flask python-3.x weasyprint macbookpro-touch-bar

17
推荐指数
3
解决办法
1万
查看次数

OSError:无法加载库“gobject-2.0”:错误0x7e

我按照安装 weasyprint (Django 项目)的说明安装了包weasyprint。\n我的系统:win 10。我已经安装了gtk3,它存在于我的PATH中\n付费GTK3

\n
import weasyprint\n...\n@staff_member_required\ndef order_admin_pdf(request, order_id):\n    # \xd0\x9f\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb0\xd0\xb5\xd0\xbc \xd0\xb7\xd0\xb0\xd0\xba\xd0\xb0\xd0\xb7 \xd0\xbf\xd0\xbe ID:\n    order = get_object_or_404(Order, id=order_id)\n    # \xd0\x9f\xd0\xb5\xd1\x80\xd0\xb5\xd0\xb4\xd0\xb0\xd0\xb5\xd0\xbc \xd0\xbe\xd0\xb1\xd1\x8a\xd0\xb5\xd0\xba\xd1\x82 \xd0\xb2 \xd1\x84\xd1\x83\xd0\xbd\xd0\xba\xd1\x86\xd0\xb8\xd1\x8e render_to \xd1\x87\xd0\xb5\xd1\x80\xd0\xb5\xd0\xb7 \xd0\xb3\xd0\xb5\xd0\xbd\xd0\xb5\xd1\x80\xd0\xb0\xd1\x86\xd0\xb8\xd1\x8e \xd1\x88\xd0\xb0\xd0\xb1\xd0\xbb\xd0\xbe\xd0\xbd\xd0\xb0 pdf.html HTML \xd0\xb2 \xd0\xb2\xd0\xb8\xd0\xb4\xd0\xb5 \xd1\x81\xd1\x82\xd1\x80\xd0\xbe\xd0\xba\xd0\xb8:\n    html = render_to_string(\'shop/orders/order_admin_pdf.html\',\n                            {\'order\': order})\n    # \xd0\xa1\xd0\xbe\xd0\xb7\xd0\xb4\xd0\xb0\xd0\xb5\xd0\xbc \xd0\xbe\xd0\xb1\xd1\x8a\xd0\xb5\xd0\xba\xd1\x82 \xd0\xbe\xd0\xb2\xd1\x82\xd0\xb5\xd1\x82\xd0\xb0 \xd1\x81 \xd1\x82\xd0\xb8\xd0\xbf\xd0\xbe\xd0\xbc \xd1\x81\xd0\xbe\xd0\xb4\xd0\xb5\xd1\x80\xd0\xb6\xd0\xb8\xd0\xbc\xd0\xbe\xd0\xb3\xd0\xbe application/pdf \xd0\xb8 \xd0\xb7\xd0\xb0\xd0\xb3\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xb2\xd0\xba\xd0\xbe\xd0\xbc Content-Disposition:\n    response = HttpResponse(content_type=\'application/pdf\')\n    response[\'Content-Disposition\'] = \'filename=order_{}.pdf"\'.format(order.id)\n    # \xd0\x92\xd1\x8b\xd0\xb7\xd0\xbe\xd0\xb2 \xd0\xbc\xd0\xb5\xd1\x82\xd0\xbe\xd0\xb4\xd0\xb0 weasyprint \xd0\xb4\xd0\xbb\xd1\x8f \xd0\xbf\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f PDF \xd0\xb4\xd0\xbe\xd0\xba\xd1\x83\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x82\xd0\xb0:\n    weasyprint.HTML(string=html).write_pdf(response,\n                                           stylesheets=[weasyprint.CSS(\n                                               settings.STATIC_ROOT + \'css/pdf.css\')])\n    return response\n
Run Code Online (Sandbox Code Playgroud)\n
\n

OSError:无法加载库“gobject-2.0”:错误0x7e。此外,ctypes.util.find_library() …

python windows django weasyprint lib

14
推荐指数
3
解决办法
5万
查看次数

Django WeasyPrint CSS集成警告:没有基URI的相对URI引用:<link href ="/ static/css/bootstrap.min.css"> at line none

我想在Django中使用WeasyPrint生成报告.但我不知道如何集成css(特别是bootstrap css文件).我能够看到生成的html.但是当我将这一行添加到我的模板时,我收到警告 -

<link href="/static/css/bootstrap.min.css" rel="stylesheet"/>

警告是 - 没有基URI的相对URI引用:在行None

我想知道如何将基URI发送到模板.任何帮助,将不胜感激.

html css pdf django weasyprint

11
推荐指数
1
解决办法
2956
查看次数

Python selenium测试卡在urlopen中

我的应用程序依赖于:

  • Python 3
  • Django 1.8
  • Weasyprint

它在开发和生产环境中运行完美,但在使用硒进行测试时则无法运行.

使用weasyprint,我从HTML创建一个PDF,这个库使用urllib下载CSS(例如http:// localhost:8081/static/lib/bootstrap/css/bootstrap.min.css),但它挂起(没有错误,只是打开这些时,卡住了.

如果我在挂起时直接在浏览器中输入此URL,则会显示CSS.

使用的命令:

./manage.py test tests.test_account.HomeNewVisitorTest
Run Code Online (Sandbox Code Playgroud)

测试的相关部分:

from selenium import webdriver

class HomeNewVisitorTest(StaticLiveServerTestCase):
    def setUp(self):
        if TEST_ENV_FIREFOX:
            self.driver = webdriver.Firefox()
        else:
            self.driver = webdriver.PhantomJS()
        self.driver.set_window_size(1440, 900)

    def tearDown(self):
        try:
            path = 'worksites/' + self.worksite_name.lower()
            os.rmdir(settings.MEDIA_ROOT + path)
        except FileNotFoundError:
            pass
        super().tearDown()

    def test(self):
        d = self.driver
        d.get(self.get_full_url('home'))
        d.find_element_by_css_selector('.btn-success[type=submit]').click()
Run Code Online (Sandbox Code Playgroud)

在我看来:

    # Generate PDF for contact directory
    template = get_template("pdf/annuaire.html")
    context = {"worksite": worksite}
    html = template.render(RequestContext(self.request, context))
    base_url = self.request.build_absolute_uri("/") …
Run Code Online (Sandbox Code Playgroud)

python django selenium urlopen weasyprint

10
推荐指数
1
解决办法
800
查看次数

ctypes.util.find_library() 未能找到名为“pango-1.0-0”的库 UBUNTU 服务器(EC2)

我正在使用 UBUNTU 18.04 在 AWS 上设置 EC2 实例,并在尝试运行此 Gunicorn 命令时遇到以下错误gunicorn --bind 0.0.0.0:8000 zipherJobCards.wsgi:application

错误:

OSError: cannot load library 'pango-1.0-0': pango-1.0-0: cannot open shared object file: No such file or directory.  
Additionally, ctypes.util.find_library() did not manage to locate a library called 'pango-1.0-0'
Run Code Online (Sandbox Code Playgroud)

在我的基本目录和 Web 应用程序目录中安装 weasyprint 后,我​​遇到了此错误。

有谁知道这个问题的原因以及如何解决它?

python django amazon-ec2 weasyprint ubuntu-18.04

10
推荐指数
1
解决办法
6390
查看次数

Django-Weasyprint图像问题

正如在文档页面中所说,我在我的html文件中定义了一个img标记,如下所示:

<img src='{% static 'image.png' %}'/>
Run Code Online (Sandbox Code Playgroud)

这个url存在于服务器中,我甚至使用http响应创建了一个不同的视图,图像显示得很好.以下是两个视图的代码:

pdf-weasyprint视图:

def card_view(request):
    template = loader.get_template('card.html')
    context = {'sample': None
               }
    html = template.render(RequestContext(request, context))
    response = HttpResponse(mimetype='application/pdf')
    HTML(string=html).write_pdf(response)
    return response
Run Code Online (Sandbox Code Playgroud)

html视图:

def card_view2(request):
    context = {'sample': None,
               }
    return render_to_response('card.html', context, 
                              context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

我认为默认的url fetcher应该找到并渲染图像(这是一个png - 所以不应该涉及任何格式问题)任何想法?任何帮助,将不胜感激!!

pdf django pdf-generation django-templates weasyprint

9
推荐指数
1
解决办法
5535
查看次数

在Ubuntu中安装最新的cairo lib for weasyprint

我刚刚安装了一个Ubuntu仿生实例。它预装了cairo 1.14.6。我至少需要cairo 1.15.4才能使weasyprint正常工作。不幸的是,即使在安装了最新的cairo之后,python仍然会选择旧的库。任何线索,我将不胜感激。

# Install weasyprint dependencies
sudo apt-get install build-essential python3-dev python3-pip python3-setuptools python3-wheel python3-cffi libcairo2 libpango-1.0-0 libpangocairo-1.0-0 libgdk-pixbuf2.0-0 libffi-dev shared-mime-info

# Check cairo lib version, prints "1.15.10-2ubuntu0.1"
dpkg -l '*cairo*'

# Install weasyprint
pip3 install weasyprint

# Test cairo version catch by python, still prints "1.14.6"
python3 -c "import cairocffi; print(cairocffi.cairo_version_string())"
Run Code Online (Sandbox Code Playgroud)

python ubuntu cairo python-3.x weasyprint

9
推荐指数
1
解决办法
223
查看次数

是否可以使用weasyprint对页脚进行精美格式化?

weasyprint了解某些自定义css指令,例如:

 @bottom-right {
   content: "Page " counter(page) " of " counter(pages) "
 }
Run Code Online (Sandbox Code Playgroud)

在weasyprint生成的每个pdf页面的右下角放置一个"Page 1 of 4"样式计数器.

我想为我的页脚生成稍微更漂亮的格式 - 例如,我希望能够以粗体显示某些部分,而其他部分则以斜体显示,如下所示:

1,共 4

这对weasyprint来说是否可行?如果是这样,我如何指示weasyprint使用这种格式 - 我将采用基于CSS的解决方案,但我更倾向于使用python中的weasyprint库以编程方式执行此操作.

python pdf formatting weasyprint

8
推荐指数
1
解决办法
2472
查看次数

在 pdf weasyprint 中附加 img 文件

我需要帮助在 pdf 中附加 img 文件。我们使用 Wea​​syPrint lib 从 html 生成 pdf。

在html中像这样连接img文件

<img src="1.png" alt="">
<img src="2.png" alt="">
<img src="3.png" alt="">
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我没有看到图像。

python django pdf-generation weasyprint

8
推荐指数
1
解决办法
8467
查看次数

cairocffi 在 Ubuntu 18.04 上安装失败

我正在pip freeze一个 python 项目上运行,它显示除数字版本之外的字符串 VERSION 并且包安装失败,警告消息是:

weasyprint 43 有要求 cairocffi>=0.9.0,但您将拥有不兼容的 cairocffi file-.cairocffi-VERSION。

cairocffi===file-.cairocffi-VERSION
Run Code Online (Sandbox Code Playgroud)

cairoccffi 是我在项目中使用的 Weasyprint 的依赖项,并且 weasypring 版本是正确的:

WeasyPrint==43
Run Code Online (Sandbox Code Playgroud)

我尝试使用pipreqs生成 requirements.txt,它没有显示 cairocffi 包,但包安装失败并出现相同的错误。

我检查了 site-packages 文件夹,它包含

cairocffi-file_.cairocffi_VERSION.dist-info/
Run Code Online (Sandbox Code Playgroud)

导致问题的原因。

有人可以帮忙吗?

python-3.x requirements.txt weasyprint

8
推荐指数
1
解决办法
1947
查看次数