Je voudrais être en mesure d'ajouter un crochet à mon setup.py qui sera exécuté après l'installation (soit au moment de easy_install qui pratiquent, ou lorsque cela python setup.py installer).
Dans mon projet, PySmell, j'ai quelques fichiers de support pour Vim et Emacs. Lorsqu'un utilisateur installe PySmell de la manière habituelle, ces fichiers sont copiés dans l'œuf, et l'utilisateur doit les poissons et de les placer dans son .vim ou .emacs répertoires. Ce que je veux, c'est soit à la demande de l'utilisateur, de post-installation, où serait-il, comme ces fichiers copiés, ou même juste un message de l'impression de l'emplacement des fichiers et que doit-il faire avec eux.
Quelle est la meilleure façon de le faire?
Merci
Mon setup.py ressemble à ceci:
#!/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 = 'orestis@orestis.gr',
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',
]
)
EDIT:
Voici un stub qui démontre l' python 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},
...
Pas de chance avec les easy_install route encore.