configurazione personalizzata Python setuptools
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?
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"]}