Разверните приложение Python в Heroku с помощью дополнительной установки pip - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь реализовать функциональность Deploy to Heroku для моего приложения Python: https://github.com/jet-admin/jet-bridge/tree/heroku

Он работает нормально, если для установки зависимостей просто используется файл require.txt, но мне требуется изменить мой файл require.txt, добавив в него некоторые дополнительные пакеты, которые мне обычно не нужны (psycopg2, mysqlclient).

Можно ли включить не все требования в файл require.txt, а установить его с помощью какой-нибудь дополнительной команды? Я попытался добавить скрипт postdeploy, который будет выполнять команду pip install, но после успешного завершения развертывания мое приложение сообщает, что psycopg2 не установлен (хотя я установил его в команде postdeploy).

1 Ответ

0 голосов
/ 22 марта 2019

Пакет Heroku Python имеет хук, с помощью которого вы можете выполнять дополнительные команды после начальной компиляции слагов .

Чтобы использовать его, вы можете добавить bin/post_compile файл, помещающий в командную оболочку команды для установки дополнительных пакетов.

Вы даже можете сделать так, чтобы это зависело от переменной среды, например:

# assuming you have files mysql-requirements.txt and postgres-requirements.txt
if [ "$JET_BRIDGE_DB" == "mysql" ]; then
    echo  "Installing Python dependencies for MySQL support"
    pip install -r mysql-requirements.txt
else
    echo  "Assuming Postgres database, installing Python dependencies"
    pip install -r postgres-requirements.txt
fi

Подробнее:

...