Jak zrobić easy_install wykonać własne polecenia w pliku setup.py?

Chcę, aby mój plik setup.py wykonał niestandardowe akcje oprócz instalowania pakietu Pythona (np. Instalowanie skryptu init.d, tworzenie katalogów i plików itp.). Wiem, że mogę dostosować klasy distutils / setuptools do własnych działań. Problem, który mam, polega na tym, że wszystko działa, gdy wracam do katalogu pakietów i wykonuję „instalację Pythona”, ale moje własne klasy nie wydają się być wykonywane, gdy wykonuję „easy_install mypackage.tar.gz”. Oto mój plik setup.py (utwórz pusty plik myfoobar.py w tym samym katalogu, aby przetestować):

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},
)

To samo dzieje się, nawet jeśli importuję „setup” i „install” z distutils. Jakieś pomysły, jak mogę sprawić, by easy_install wykonał moje niestandardowe klasy?

Aby wyjaśnić, nie chcę używać niczego dodatkowego, jak Buildout czy Paver.

questionAnswers(2)

yourAnswerToTheQuestion