Несколько проектов из одного setup.py?
-
12-09-2019 - |
Вопрос
Мой нынешний setup.py (используя setuptools) устанавливает две вещи: одна tvdb_api
(обертка API), другой — tvnamer
(скрипт командной строки)
Я хочу сделать их доступными отдельно, чтобы пользователь мог сделать..
easy_install tvdb_api
..чтобы получить только оболочку API или..
easy_install tvnamer
...чтобы установить tvnamer (и tvdb_api, как требование)
Возможно ли это без двух отдельных setup.py
сценарии?Можете ли вы иметь два отдельных пакета PyPi из одного и того же пакета? python setup.py upload
команда..?
Решение
setup.py
— это обычный файл Python, который по соглашению устанавливает пакеты.Условно, setup.py
содержит вызов setuptools или distutils setup()
функция.Если вы хотите использовать один setup.py
для двух пакетов вы можете позвонить в другой setup()
функция на основе аргумента командной строки:
import sys
if len(sys.argv) > 1 and sys.argv[1] == 'script':
setup(name='tvnamer', ...)
else:
setup(name='tvdb_api', ...)
Однако на практике я бы рекомендовал просто написать два сценария.