Post script de instalación después de instalar una rueda

Usando from setuptools.command.install import install , puedo ejecutar fácilmente una secuencia de comandos posterior a la instalación personalizada si ejecuto python setup.py install . Esto es bastante trivial de hacer.

Actualmente, la secuencia de comandos no hace más que imprimir algo de texto, pero quiero que se ocupe de los cambios del sistema que deben ocurrir cuando se instala un paquete nuevo; por ejemplo, realice una copia de seguridad de la base de datos que el paquete está utilizando.

Quiero generar una rueda Python para mi paquete y luego copiarlo e instalarlo en un conjunto de máquinas de implementación. Sin embargo, mi script de instalación personalizado ya no se ejecuta en la máquina de implementación.

¿Qué estoy haciendo mal? ¿Es eso posible?

No mezcle la instalación de paquetes y la implementación del sistema

La instalación de paquetes de Python (utilizando cualquier tipo de herramientas o formatos de empaquetado) se centrará en hacer que ese paquete sea utilizable desde el código de Python.

La implementación, lo que podría incluir modificaciones de la base de datos, etc. definitivamente está fuera del scope y será manejada por otras herramientas como fab, salt-stack, etc.

El hecho de que algo parezca bastante trivial no significa que uno deba hacerlo.

El riesgo es que hará que la instalación de su paquete sea difícil de reutilizar, ya que se estropeará por otras cosas que no están relacionadas con la instalación de paquetes puros.

La opción de conectarse al proceso de instalación y modificar el entorno es que algunas personas incluso consideran un defecto en el diseño, lo que provoca un gran desorden en la situación del empaque de Python. Consulte Armin Roacher en Python. Embalaje: odio, odio, odio en todas partes , capítulo “PTH: El diseño fallido que habilitado todo ”