DigitalOcean Apps中Django集成Poppler遇PDFInfoNotInstalledError求助
解决DigitalOcean Apps部署Django时的Poppler依赖问题
第一步:正确配置Aptfile
DigitalOcean Apps支持通过Aptfile安装系统级依赖,但很多人会搞错包名:
- 在项目根目录创建无后缀的
Aptfile文件 - 文件内只写一行:
(必须是poppler-utilspoppler-utils,不是单纯的poppler,这是核心误区)
第二步:确保PATH包含Poppler路径
Python依赖库需要找到Poppler的二进制文件,DigitalOcean Apps中apt安装的包默认在/app/.apt/usr/bin目录:
- 两种配置方式二选一:
- 在Django的
settings.py开头添加:import os os.environ['PATH'] += os.pathsep + '/app/.apt/usr/bin' - 在DigitalOcean Apps控制台的「环境变量」里添加:
PATH=/app/.apt/usr/bin:$PATH
- 在Django的
第三步:修正requirements.txt
Poppler是系统包,不能写进requirements.txt,只保留你的Python依赖:
pdfplumber==0.10.3 # 其他Django相关依赖...
备选方案:自定义构建命令
如果默认构建流程没处理Aptfile,在DigitalOcean Apps的「构建设置」里替换默认命令为:
apt-get update && apt-get install -y poppler-utils && pip install -r requirements.txt
验证是否生效
部署后可以加个测试视图确认:
from django.http import HttpResponse from pdfplumber import utils def test_poppler_status(request): try: utils.get_pdfinfo_path() return HttpResponse("Poppler 已正常加载") except Exception as e: return HttpResponse(f"加载失败:{str(e)}")
访问这个视图就能知道Poppler是否被正确识别。
内容的提问来源于stack exchange,提问作者Brad Davison
相关产品推荐
相关产品推荐

