Quiero que setup.py haga algunas acciones personalizadas además de instalar el paquete de Python (como instalar un script de init.d, crear directorios y archivos, etc.) Sé que puedo personalizar las clases de distutils/setuptools para hacer las mías comportamiento. El problema que tengo es que todo funciona cuando hago un cd al directorio del paquete y hago "instalación de python setup.py", pero parece que mis clases personalizadas no se ejecutan cuando hago "easy_install mypackage.tar.gz". Aquí está mi archivo setup.py (crear un archivo myfoobar.py vacío en el mismo directorio para probar):¿Cómo hacer que easy_install ejecute comandos personalizados en setup.py?
import setuptools
from setuptools.command import install as _install
class install(_install.install):
def initialize_options(self):
_install.install.initialize_options(self)
def finalize_options(self):
_install.install.finalize_options(self)
def run(self):
# Why is this never executed when tarball installed with easy_install?
# It does work with: python setup.py install
import pdb;pdb.set_trace()
_install.install.run(self)
setuptools.setup(
name = 'myfoobar',
version = '0.1',
platforms = ['any'],
description = 'Test package',
author = 'Someone',
py_modules = ['myfoobar'],
cmdclass = {'install': install},
)
Lo mismo ocurre incluso si importo "configuración" y "instalación" de distutils. ¿Alguna idea de cómo podría hacer que easy_install ejecutara mis clases personalizadas?
Para aclarar, no quiero usar nada extra, como Buildout o Paver.
No es la respuesta que esperaba, pero supongo que lo mejor que se puede dar, así que lo estoy otorgando como la respuesta. ¡Gracias! –