Как заставить 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.