Я хотел бы добавить крючок к моему setup.py, который будет запущен после установки (либо при установке easy_install или при установке python setup.py).
В моем проекте PySmell у меня есть файлы поддержки для Vim и Emacs. Когда пользователь устанавливает PySmell обычным способом, эти файлы копируются в фактическое яйцо, и пользователь должен выловить их и поместить в свои каталоги .vim или .emacs. Я хочу либо попросить пользователя, и после установки, где ему понравятся эти файлы, или даже просто сообщение, в котором будет указано расположение файлов и что он должен делать с ними.
Каков наилучший способ сделать это?
Спасибо
Моя setup.py выглядит так:
#!/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 structure that IDE tools can
use.
The first target is Vim, because that what I'm using and because its
completion mechanism is very straightforward, but it 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:
Здесь заглушка, которая демонстрирует 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},
...
Пока нет пути easy_install.