использование инструментов настройки с зависимостями после установки и Python
-
12-09-2019 - |
Вопрос
Это в некоторой степени связано с этот вопрос.Допустим, у меня есть пакет, который я хочу развернуть через rpm, потому что мне нужно скопировать файлы после установки, и у меня есть некоторые зависимости, не относящиеся к Python, которые я хочу объявить.Но допустим также, что у меня есть некоторые зависимости Python, которые легко доступны в PyPI.Кажется, если я просто упакую в виде яйца, разархивирую, а затем python setup.py install
автоматически позаботится о моих зависимостях Python за счет потери любой функциональности после установки и зависимостей, не связанных с Python.
Есть ли какой-нибудь рекомендуемый способ сделать это?Полагаю, я мог бы указать это в сценарии предварительной установки, но тогда я начинаю дублировать информацию и практически не использую инструменты настройки для чего-либо.
(Моя текущая настройка предполагает передачу install_requires = ['dependency_name']
к setup
, который работает для python setup.py bdist_egg
и unzip my_package.egg; python my_package/setup.py install
, но не для python setup.py bdist_rpm --post-install post-install.sh
и rpm --install my_package.rpm
.)
Решение
Я думаю, было бы лучше, если бы ваши зависимости Python также были доступны в виде RPM и объявлены как зависимости в RPM.Если они недоступны где-либо еще, создайте их самостоятельно и поместите в свой репозиторий yum.
Запуск установки PyPI как побочный эффект установки RPM является злом, поскольку он не поддерживает правильное удаление (т. е.удаление RPM приведет к удалению вашего пакета, но оставит зависимости без надлежащей процедуры удаления).