Pregunta

Estoy envasado de un módulo de Python, y me gustaría que los usuarios puedan construir el módulo con algunas opciones de personalización. En concreto, el paquete va a hacer un poco de magia extra si usted le proporcione ciertos archivos ejecutables que se puede utilizar.

Lo ideal sería que los usuarios podrían ejecutar setup.py install o setup.py install --magic-doer=/path/to/executable. Si se utiliza la segunda opción, me gustaría establecer una variable en alguna parte del código, e ir de allí.

¿Es esto posible con setuptools de Python? Si es así, ¿cómo lo hago?

¿Fue útil?

Solución

parece que se puede leer ... este .

Extracto del artículo:

  

Los comandos son clase simple que se deriva de setuptools.Command, y definen algunos elementos mínimos, que son:

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
  

El doc setuptools sigue vacío sobre la subclasificación de comandos, sino una clase mínima debe tener este aspecto:

 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 clase puede ser entonces gancho como un comando, utilizando un punto de entrada en el archivo setup.py:

 setup(
     # ...
     entry_points = {
     "distutils.commands": [
     "my_command = mypackage.some_module:MyCommand"]}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top