Como posso adicionar scripts de pós-instalação ao easy_install / setuptools / distutils?

Eu gostaria de poder adicionar um gancho ao meu setup.py, que será executado após a instalação (ao instalar a instalação fácil ou ao instalar o python setup.py).

No meu projeto,PySmell, Tenho alguns arquivos de suporte para o Vim e o Emacs. Quando um usuário instala o PySmell da maneira usual, esses arquivos são copiados no ovo real, e o usuário precisa retirá-los e colocá-los nos diretórios .vim ou .emacs. O que eu quero é perguntar ao usuário, pós-instalação, onde ele deseja que esses arquivos sejam copiados ou apenas uma mensagem imprimindo a localização dos arquivos e o que ele deve fazer com eles.

Qual é a melhor maneira de fazer isso?

obrigado

Meu setup.py tem a seguinte aparência:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from setuptools import setup

version = __import__('pysmell.pysmell').pysmell.__version__

setup(
    name='pysmell',
    version = version,
    description = 'An autocompletion library for Python',
    author = 'Orestis Markou',
    author_email = '[email protected]',
    packages = ['pysmell'],
    entry_points = {
        'console_scripts': [ 'pysmell = pysmell.pysmell:main' ]
    },
    data_files = [
        ('vim', ['pysmell.vim']),
        ('emacs', ['pysmell.el']),
    ],
    include_package_data = True,
    keywords = 'vim autocomplete',
    url = 'http://code.google.com/p/pysmell',
    long_description =
"""\
PySmell is a python IDE completion helper. 

It tries to statically analyze Python source code, without executing it,
and generates information about a project's structure that IDE tools can
use.

The first target is Vim, because that's what I'm using and because its
completion mechanism is very straightforward, but it's not limited to it.
""",
    classifiers = [
        'Development Status :: 5 - Production/Stable',
        'Environment :: Console',
        'Intended Audience :: Developers',
        'License :: OSI Approved :: BSD License',
        'Operating System :: OS Independent',
        'Programming Language :: Python',
        'Topic :: Software Development',
        'Topic :: Utilities',
        'Topic :: Text Editors',
    ]


)

EDITAR:

Aqui está um esboço que demonstra apython setup.py install:

from setuptools.command.install import install as _install

class install(_install):
    def run(self):
        _install.run(self)
        print post_install_message

setup(
    cmdclass={'install': install},
    ...

Ainda não há sorte com a rota easy_install.

questionAnswers(2)

yourAnswerToTheQuestion