HeroPyK Python buildpack pip установить, не добавляя файл entry-points.txt при установке - PullRequest
0 голосов
/ 09 ноября 2019

Моя среда выполнения python-3.7.5

У меня есть приложение Django для повторного использования с точкой входа в setup.py, определенной как:

setup = (
...
entry_points={'my.group': 'foo = bar'},
)

, которая позволяет мне использовать pkg_resources.iter_entry_points(group="my.group", name=None) дляполучить список плагинов.

Я не знал об этом, пока у меня не было этой ошибки, но, похоже, он полагается на файл entry_points.txt, который устанавливается в egg-info.

Этот файл entry_points.txt, кажется, отсутствует, когда я нажимаю на heroku. Я выполнил heroku run bash и:

~/.heroku/python/lib/python3.7/site-packages/m_package.egg-info $ ls
dependency_links.txt  installed-files.txt  PKG-INFO  SOURCES.txt  top_level.txt

, но когда я удаляю его и устанавливаю вручную, и перепроверяю:

~/.heroku/python/lib/python3.7/site-packages/my_package.egg-info $ ls
dependency_links.txt  entry_points.txt  installed-files.txt  PKG-INFO  requires.txt  SOURCES.txt  top_level.txt

Я что-то упускаю из пакета сборки?

Единственное, что нужно добавить, это то, что я использую https://github.com/timshadel/heroku-buildpack-github-netrc.git для получения аутентификации Https в git, (мой файл require.txt содержит несколько пакетов из частных репозиториев github), но я не думаю, чтоэто должно иметь значение вообще.

1 Ответ

0 голосов
/ 09 ноября 2019

Поработав с официальным пакетом django, я понял, что он просто кэширует пакеты, и, поскольку я обновил код my_package, но не его версию, он не собирал новую библиотеку, следовательно, никаких точек входа. Когда я делал pip install вручную на экземпляре heroku, он выбирал нужную библиотеку.

В любом случае, это полезно знать, поэтому сохраняйте вопрос и ответ, если у кого-то одна и та же проблема, однажды.

...