Domanda

Sono il confezionamento di un modulo Python, e vorrei che gli utenti siano in grado di costruire il modulo con alcune opzioni personalizzate. In particolare, il pacchetto sarà fare un po 'di magia in più se si fornisce con alcuni eseguibili che si può utilizzare.

Idealmente, gli utenti avrebbero eseguire setup.py install o setup.py install --magic-doer=/path/to/executable. Se hanno usato la seconda opzione, mi piacerebbe impostare una variabile da qualche parte nel codice, e passare da lì.

Questo è possibile con la setuptools di Python? Se sì, come posso fare?

È stato utile?

Soluzione

Sembra si può ... leggi questo .

Estratto da un articolo:

  

I comandi sono semplici classe che deriva dalla setuptools.Command, e definiscono alcuni elementi minimi, che sono:

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
  

Il dottore setuptools è ancora vuota su sottoclasse di comando, ma una classe minima sarà simile a questa:

 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
  

La classe può quindi essere gancio come un comando, utilizzando un punto di ingresso nel proprio file setup.py:

 setup(
     # ...
     entry_points = {
     "distutils.commands": [
     "my_command = mypackage.some_module:MyCommand"]}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top