Я хотел был бы иметь возможность добавить крючок к моей setup.py, которая будет запущена после установки (либо когда easy_install'ing, либо при установке python setup.py install).Как добавить скрипты после установки в easy_install/setuptools/distutils?
В моем проекте 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'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:
Вот заглушки, которая не демонстрирует 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 маршрут еще.
Я только что узнал, что вызов `setuptools.install.install: run()` явно не разрешает параметр установки install_requires`, и кажется, что он работает по-другому, когда вы это делаете – astronaut 2013-09-22 13:11:04
@astronaut use `do_egg_install`, как описано здесь: http://stackoverflow.com/questions/21915469/python-setuptools-install-requires-is-ignored-when-overriding-cmdclass – 2015-03-27 12:57:14