You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask应用部署Ubuntu VPS后用pdfkit生成PDF遇wkhtmltopdf错误

解决Flask部署到Ubuntu VPS后pdfkit抛出wkhtmltopdf OSError的问题

这个问题我碰到过好多次了——本地跑的好好的,一部署到Ubuntu服务器就报错,本质原因就是你的VPS服务器上没有安装pdfkit依赖的wkhtmltopdf工具,或者pdfkit没法自动定位到它的可执行文件路径。下面是一步步的解决办法:

1. 先在Ubuntu服务器上安装wkhtmltopdf

直接通过apt包管理器安装即可,打开服务器终端执行:

sudo apt update && sudo apt install wkhtmltopdf

安装完成后,先验证是否安装成功,执行:

wkhtmltopdf --version

如果能输出类似wkhtmltopdf 0.12.6 (with patched qt)这样的版本信息,说明安装没问题。

2. 给pdfkit指定wkhtmltopdf的绝对路径(可选但推荐)

有时候即使安装了工具,pdfkit可能因为系统环境变量或虚拟环境的原因找不到可执行文件,这时候你可以在Flask代码里手动指定路径:

import pdfkit

# Ubuntu上默认安装路径是/usr/bin/wkhtmltopdf,直接配置进去
config = pdfkit.configuration(wkhtmltopdf='/usr/bin/wkhtmltopdf')

# 生成PDF时传入这个配置
# 示例1:生成PDF内容返回
pdf_content = pdfkit.from_string("<h1>Hello from Flask!</h1>", False, configuration=config)
# 示例2:保存PDF到文件
pdfkit.from_string("<h1>Hello from Flask!</h1>", "output.pdf", configuration=config)

3. 检查运行权限(极少情况需要)

如果还是报错,确认一下运行gunicorn的用户有没有访问wkhtmltopdf的权限——不过apt安装的工具默认是全局可执行的,这个问题很少出现。

按照上面的步骤操作,应该就能解决那个OSError: [Errno 2] No such file or directory的问题了。

内容的提问来源于stack exchange,提问作者swordfish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:59:28