¿Cómo hacer que easy_install ejecute comandos personalizados en setup.py?
Quiero que setup.py realice algunas acciones personalizadas además de instalar el paquete Python (como instalar un script init.d, crear directorios y archivos, etc.) Sé que puedo personalizar las clases distutils / setuptools para que realicen mis propias acciones. El problema que tengo es que todo funciona cuando cd al directorio del paquete y hago "python setup.py install", pero mis clases personalizadas no parecen ejecutarse cuando hago "easy_install mypackage.tar.gz". Aquí está mi archivo setup.py (cree un archivo myfoobar.py vacío en el mismo directorio para probar):
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 "setup" e "install" desde distutils. ¿Alguna idea de cómo podría hacer que easy_install ejecute mis clases personalizadas?
Para aclarar, no quiero usar nada extra, como Buildout o Paver.