Пользовательская конфигурация Python setuptools
Вопрос
Я собираю модуль Python, и я хотел бы, чтобы пользователи могли создавать модуль с некоторыми пользовательскими опциями.В частности, пакет будет творить дополнительную магию, если вы предоставите ему определенные исполняемые файлы, которые он может использовать.
В идеале пользователи должны запускать setup.py install
или setup.py install --magic-doer=/path/to/executable
.Если бы они использовали второй вариант, я бы установил переменную где-нибудь в коде и перешел оттуда.
Возможно ли это с помощью Python setuptools
?Если да, то как мне это сделать?
Решение
Кажется, ты можешь...Читать это.
Выдержка из статьи:
Команды - это простой класс, производный от setuptools.Командуйте и определяйте некоторые минимальные элементы, которые являются:
description: describe the command
user_options: a list of options
initialize_options(): called at startup
finalize_options(): called at the end
run(): called to run the command
Документ setuptools по-прежнему пуст о команде создания подклассов, но минимальный класс будет выглядеть следующим образом:
class MyCommand(Command):
"""setuptools Command"""
description = "run my command"
user_options = tuple()
def initialize_options(self):
"""init options"""
pass
def finalize_options(self):
"""finalize options"""
pass
def run(self):
"""runner"""
XXX DO THE JOB HERE
Затем класс может быть крюк, как команда, используя точку входа в файл setup.py :
setup(
# ...
entry_points = {
"distutils.commands": [
"my_command = mypackage.some_module:MyCommand"]}