Как использовать buildpack poppler на Heroku

Я хочу использовать pdf2image, который является пакетом python на Heroku, и ему нужен poppler, поэтому мне нужно добавить buildpack poppler.

Я добавил https://github.com/survantjames/heroku-buildpack-poppler.git со ссылкой на Установите poppler на Heroku Server django, но мое приложение показало ошибка и разбился.

Итак, я проверил с помощью bash на Heroku, путь директивы bin poppler добавлен в переменную окружения, но утилиты poppler не работают и не работают.

Сообщение об ошибке pdfinfo (одной из утилит poppler):

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

В ответ на это я добавил пакет сборки libpng12 из https://elements.heroku.com/buildpacks/freddix/libpng12, но это не улучшилось. Как мне использовать buildpack poppler на Heroku?

сборочные пакеты:

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()

person Kairi Eisei    schedule 18.09.2019    source источник


Ответы (2)


Решение сработало для меня с некоторыми изменениями (Python 3):

  1. Добавьте buildpack в Heroku:

    heroku buildpacks:set heroku/python

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

  2. Создайте файл с именем Aptfile в папке вашего проекта и напишите внутри build-essential libpoppler-cpp-dev pkg-config python3-dev.

person Бендр Родригес    schedule 18.05.2021

Решение, которое сработало для меня:

  1. удалить poppler buildback в настройках
  2. добавьте buildpack в настройки для: https://github.com/ONode/heroku-buildpack-xpdf
  3. вручную добавить файл .xpdfrc в корневую папку проекта
  4. перезапустите и разверните дино

(решение найдено здесь: https://www.npmjs.com/package/pdf-util?activeTab=readme)

person Maurício Pradella    schedule 03.11.2019