Pergunta

Estou embalagem até um módulo Python, e eu gostaria que os usuários sejam capazes de construir o módulo com algumas opções personalizadas. Especificamente, o pacote vai fazer alguma magia extra se você fornecê-lo com certos executáveis ??que ele pode usar.

O ideal é que os usuários poderiam executar setup.py install ou setup.py install --magic-doer=/path/to/executable. Se eles usaram a segunda opção, eu definir um lugar variável no código, e de lá ir.

Isso é possível com setuptools do Python? Se sim, como eu faço isso?

Foi útil?

Solução

Parece que você pode ... leia este .

Extrato de artigo:

Os comandos são simples classe que deriva de setuptools.Command, e definir alguns elementos mínimos, que são:

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

O doc setuptools ainda está vazio sobre subclassificação de comando, mas uma classe mínima será parecido com este:

 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

A classe pode então ser gancho como um comando, utilizando um ponto de entrada em seu arquivo setup.py:

 setup(
     # ...
     entry_points = {
     "distutils.commands": [
     "my_command = mypackage.some_module:MyCommand"]}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top