Heroku устанавливает дополнительный пакет Python
У меня есть приложение на Python / Django, которое использует Pipfile и Pipfile.lock, работающее на стеке Heroku-22 с классическими пакетами сборки.
requirements.txt не является частью базы кода, поэтому, например, Ошибка Heroku: Модуль не найден: нет модуля с именем "запросы" и подобные проблемы не актуальны.
Pipfile и Pipfile.lock содержат psycopg2 (не psycopg2-binary). В среде тестирования установлены ожидаемые пакеты, однако в рабочей среде установлен дополнительный пакет psycopg.
$ heroku run bash -a my-app-production
~ $ pip freeze | grep -i psyco
psycopg==3.2.4
psycopg2==2.9.10
против
$ heroku run bash -a my-app-testing
~ $ pip freeze | grep -i psyco
psycopg2==2.9.10
Среда тестирования и рабочая среда одинаковы, за одним исключением - серверный Pgbouncer работает в рабочей среде. Pgbouncer (https://github.com/pgbouncer/pgbouncer) перечисляет psycopg как одну из своих зависимостей. Хотя, согласно документации Heroku, пул подключений Pgbouncer существует на сервере базы данных, а не на app dyno.
Кроме того, установка зависимостей приложения локально в контейнер Docker с помощью pipenv install --deploy работает так, как ожидалось.
Есть какие-нибудь идеи, откуда берется этот дополнительный пакет psycopg? Он установлен из-за Pgbouncer (на мой взгляд, маловероятно)?