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.