У меня проблема с установкой двоичного файла wkhtmltopdf в моём приложении python heroku (колба).
Год назад (python 2) у меня уже была проблема, но я смог ее решить, добавив сначалаwkhtmltopdf-pack
к требованиям и установить его на heroku, а затем установить конфиг var на WKHTMLTOPDF_BINARY=wkhtmltopdf-pack
.Вот мой старый поток
Проблема сейчас:
Я пытаюсь использовать тот же подход для Python 3, но нет версии wkhtmltopdf-pack работает, каждый толчок отклоняется, и я не могу установить его.
Я пробовал эти версии в требованиях:
wkhtmltopdf-pack==0.12.5
wkhtmltopdf-pack==0.12.4
wkhtmltopdf-pack==0.12.3
wkhtmltopdf-pack==0.12.3.0.post1
wkhtmltopdf-pack==0.12.2.4
Я получаю эти ошибки:
No matching distribution
или
error: can't copy 'bin/wkhtmltopdf-pack': doesn't exist or not a regular file
и я помню, как однажды он сказал мне, что существует SyntaxError
, и он не может что-то декодировать.
Альтернативный подход:
Кажется, можно также использовать buildpack-пакет, поэтому я попытался добавить buildpack-пакет:
heroku buildpacks:add https://github.com/dscout/wkhtmltopdf-buildpack.git
Я вижу, что buildpack-пакет был добавлен, но установки не было, и нет также config varдля wkhtmltopdf.Я не понимаю, как запустить установку, во всех документациях для пакетов сборки написано «добавьте пакет сборки, и вы готовы к работе».
Попытка создать PDF приводит к ошибке сервера здесь:
OSError: No wkhtmltopdf executable found: "b''"
РЕДАКТИРОВАТЬ:
Мне удалось установить buildpack:
![enter image description here](https://i.stack.imgur.com/mGKKN.png)
Push былуспешно, но не было создано config var, и я понятия не имею, каков путь к двоичному файлу.
EDIT
Мне удалось найти файлы через herokubash:
app bin dev и т. д. lib lib64 потерян + найден процесс sbin sys tmp usr var
/ $ cd app
~ $ cd vendor
~/vendor $ dir
wkhtmltox
~/vendor $ cd wkhtmltox
~/vendor/wkhtmltox $ dir
lib
~/vendor/wkhtmltox $ cd lib
~/vendor/wkhtmltox/lib $ dir
libwkhtmltox.so libwkhtmltox.so.0 libwkhtmltox.so.0.12 libwkhtmltox.so.0.12.3
~/vendor/wkhtmltox/lib $ exit
Теперь я попытался все эти файлы, но все выдают ошибку:
OSError: wkhtmltopdf exited with non-zero code -11. error
Вот как я задаю путь:
# WKHTMLTOPDF config
if 'DYNO' in os.environ:
print ('loading wkhtmltopdf path on heroku')
MYDIR = os.path.dirname(__file__)
WKHTMLTOPDF_CMD = os.path.join(MYDIR + "/vendor/wkhtmltox/lib/", "libwkhtmltox.so")
else:
print ('loading wkhtmltopdf path on localhost')
MYDIR = os.path.dirname(__file__)
WKHTMLTOPDF_CMD = os.path.join(MYDIR + "/static/executables/bin/", "wkhtmltopdf.exe")