Как заставить easy_install выполнять пользовательские команды в setup.py?

Я хочу, чтобы мой setup.py выполнял некоторые пользовательские действия помимо простой установки пакета Python (например, установки скрипта init.d, создания каталогов и файлов и т. Д.). Я знаю, что могу настроить классы distutils / setuptools для выполнения моих собственных действий. У меня проблема в том, что все работает, когда я перехожу к каталогу пакета и делаю "python setup.py install ", но мои пользовательские классы неКазалось бы, когда я это сделаю "easy_install mypackage.tar.gz ", Вот's мой файл setup.py (создайте пустой файл myfoobar.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},
)

То же самое происходит, даже если я импортирую "настроить" а также "установить» от distutils. Любые идеи, как я мог бы заставить easy_install выполнять мои пользовательские классы?

Чтобы уточнить, я неЯ не хочу использовать что-то еще, например, Buildout или Paver.

Ответы на вопрос(2)

Ваш ответ на вопрос