簡體   English   中英

如何在 Heroku 上使用 poppler buildpack

[英]How to use poppler buildpack on Heroku

我想在 Heroku 上使用 python 包 pdf2image,它需要 poppler,所以我必須添加 poppler buildpack。

我添加了https://github.com/survantjames/heroku-buildpack-poppler.git並參考將 poppler 安裝到 Heroku Server django但我的應用程序顯示錯誤並崩潰。

所以我在 Heroku 上檢查了 bash,poppler 的 bin direcroty 路徑添加了環境變量,但是 poppler utils 失敗並且不起作用。

pdfinfo(poppler utils 之一)的錯誤消息是:

pdfinfo: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

對此,我添加了來自https://elements.heroku.com/buildpacks/freddix/libpng12 的libpng12 buildpack 但它沒有改進。 如何在 Heroku 上使用 poppler buildpack?

構建包:

1. https://github.com/survantjames/heroku-buildpack-poppler.git
2. heroku/python

應用程序的代碼(python3):

from flask import Flask, Response
import pdf2image
import io

app = Flask(__name__)


@app.route('/')
def index():
    return 'Hello, World!'

@app.route('/img/')
def img():
    img = pdf2image.convert_from_path(f'{app.root_path}/static/pdf/miku.pdf')[0]
    buffer = io.BytesIO()
    img.save(buffer, 'PNG')
    return Response(buffer.getvalue(), mimetype='image/png')


if __name__ == '__main__':
    app.run()

對我有用的解決方案:

  1. 在設置中刪除 poppler buildback
  2. 在以下設置中添加 buildpack: https : //github.com/ONode/heroku-buildpack-xpdf
  3. 在根項目文件夾中手動添加 .xpdfrc 文件
  4. 重新啟動並部署您的 dyno

(最初在這里找到解決方案: https : //www.npmjs.com/package/pdf-util?activeTab=readme

解決方案對我進行了一些編輯(Python 3):

  1. 將 buildpack 添加到 Heroku:

    heroku buildpacks:set heroku/python

    heroku buildpacks:add --index 1 heroku-community/apt

  2. 在您的項目文件夾中build-essential libpoppler-cpp-dev pkg-config python3-dev一個名為 Aptfile 的文件,並在其中寫入build-essential libpoppler-cpp-dev pkg-config python3-dev

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM