首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何修复函数/符号'pango_context_set_round_glyph_positions‘错误

如何修复函数/符号'pango_context_set_round_glyph_positions‘错误
EN

Stack Overflow用户
提问于 2021-08-10 02:41:33
回答 2查看 9K关注 0票数 19

我使用Apache2部署了一个Django项目,除了为表单创建PDF文件的weazyprint之外,一切都很好。pdf在测试和本地主机方面运行良好。

现在,每当我访问pdf时,它都会显示以下错误:

代码语言:javascript
运行
复制
FileNotFoundError at /business_plan/businessplan/admin/info/2/pdf/
[Errno 2] No such file or directory: '/home/ahesham/Portfolio/static\\css\\report.css'

我尝试过更改\并添加两次,但是它没有起作用,这就是views.py

代码语言:javascript
运行
复制
def admin_order_pdf(request, info_id):
    info = get_object_or_404(Info, id=info_id)
    html = render_to_string('businessplan/pdf.html', {'info': info})
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'filename="order_{}.pdf"'.format(
        Info.id)
    weasyprint.HTML(string=html,base_url=request.build_absolute_uri()).write_pdf(response,
                                           stylesheets=[weasyprint.CSS(settings.STATICFILES_DIRS[0] + '\css\\report.css')], presentational_hints=True)
    return response

这个错误是从这个\css\\report.css开始的,知道report.css文件在静态文件夹中,被谴责的站点的所有css和js都运行得非常好,我尝试过python manage.py collectstatic没有工作。

我不清楚为什么错误显示是由于ubunto或django视图。

更新:

我已尝试将地点更改如下:

代码语言:javascript
运行
复制
stylesheets=[weasyprint.CSS(settings.STATICFILES_DIRS[0] + '/css/report.css')], presentational_hints=True) 

这就是出现的错误

代码语言:javascript
运行
复制
function/symbol 'pango_context_set_round_glyph_positions' not found in library 'libpango-1.0.so.0': /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: pango_context_set_round_glyph_positions

因此,我搜索了这个解决方案,并尝试下载这个包:

代码语言:javascript
运行
复制
sudo apt-get install libpango1.0-0

也尝试过:

代码语言:javascript
运行
复制
install libpango1.0-dev

但是,没有什么改变

在项目部署时,我还尝试用静态根目录替换静态目录,但我得到了相同的错误function/symbol 'pango_context_set_round_glyph_positions'如下:

代码语言:javascript
运行
复制
stylesheets=[weasyprint.CSS(settings.STATIC_ROOT + '/css/report.css')]

这是设置文件:

代码语言:javascript
运行
复制
STATIC_URL = '/static/'
#if DEBUG:
#    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
#else:
#STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static' )]

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

我正在使用Ubuntu18.04LTS磁盘- Apache2服务器

我的问题:,我做错了什么,我如何解决它?

如果需要更多的信息来帮助修复这个错误,请告诉我。

如果在Django管理中有其他显示PDF的方式,任何反馈都将受到高度赞赏。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-18 21:26:39

我也面临着同样的错误

图书馆中找不到

'pango_context_set_round_glyph_positions‘

我想您一定是在使用weasyprint版本53.0,它需要pango版本的1.44.0+

将weasyprint版本降级为52.5解决了我的issue.because,这不需要最近版本的pango。

您也可以检查这个https://github.com/Kozea/WeasyPrint/issues/1384

票数 22
EN

Stack Overflow用户

发布于 2021-08-15 12:07:21

可能Weasyprint没有正确下载:

尝试:

代码语言:javascript
运行
复制
pip install django-weasyprint

来源:https://pypi.org/project/django-weasyprint/

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68720486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档