Пользовательская конфигурация Python setuptools

StackOverflow https://stackoverflow.com/questions/1887641

  •  19-09-2019
  •  | 
  •  

Вопрос

Я собираю модуль 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"]}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top