Вопрос

Мой нынешний 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', ...)

Однако на практике я бы рекомендовал просто написать два сценария.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top