मैं अपने setup.py में एक हुक जोड़ने में सक्षम होना चाहता हूं जो पोस्ट-इंस्टाल चलाएगा (या तो जब easy_install'ing या python setup.py इंस्टॉल करते समय)।मैं पोस्ट-इंस्टॉल स्क्रिप्ट को easy_install/setuptools/distutils में कैसे जोड़ सकता हूं?
मेरी परियोजना में, PySmell, मेरे पास विम और 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',
]
)
संपादित करें: easy_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},
...
कोई भाग्य:
यहाँ एक ठूंठ जो python setup.py install
दर्शाता है अभी तक मार्ग
मुझे पता चला है कि 'setuptools.install.install को कॉल करना: रन()' स्पष्ट रूप से 'install_requires' सेटअप तर्क को हल नहीं करता है और ऐसा लगता है कि यह – astronaut
@स्ट्रोनॉट उपयोग करते समय यह अलग तरीके से काम करता है 'do_egg_install', जैसा कि यहां चर्चा की गई है: http://stackoverflow.com/questions/21915469/python-setuptools-install-requires-is-ignored-when-overriding-cmdclass –