2009-12-11 2 views
6

Я собираю модуль Python, и я хотел бы, чтобы пользователи могли создавать модуль с некоторыми настраиваемыми параметрами. В частности, пакет будет делать дополнительную магию, если вы предоставите ему определенные исполняемые файлы, которые он может использовать.Конфигурация настраиваемой конфигурации Python

В идеале пользователи будут запускать setup.py install или setup.py install --magic-doer=/path/to/executable. Если они использовали второй вариант, я бы установил переменную где-то в коде и оттуда.

Возможно ли это с Python's setuptools? Если да, то как мне это сделать?

ответ

6

Кажется, вы можете ... читать this.

Выдержка из статьи:

Команд являются простым классом, производным от setuptools.Command, и определить некоторые минимальные элементы, которые являются:

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 документ еще пуст о подклассификации Command, но минимальный класс будет выглядеть так:

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"]} 
Смежные вопросы