का उपयोग करके एक पायथन स्क्रिप्ट पोस्ट इंस्टॉल निष्पादित करें, मैं How to extend distutils with a simple post install script? में वर्णित पाइथन डिस्ट्यूटल्स पर पोस्ट-इंस्टॉल कार्य जोड़ने का प्रयास कर रहा हूं। कार्य को स्थापित lib निर्देशिका में एक पायथन स्क्रिप्ट निष्पादित करना है। यह स्क्रिप्ट स्थापित पाइथन मॉड्यूल को स्थापित पैकेज की आवश्यकता होती है।distutils/setuptools
from distutils.core import setup
from distutils.command.install import install
class post_install(install):
def run(self):
install.run(self)
from subprocess import call
call(['python', 'scriptname.py'],
cwd=self.install_lib + 'packagename')
setup(
...
cmdclass={'install': post_install},
)
यह दृष्टिकोण से काम करता है, लेकिन जहाँ तक मैं बता सकता हूँ दो तत्वों की कमी है:: उपयोगकर्ता एक अजगर के अलावा अन्य दुभाषिया का इस्तेमाल किया गया है, तो
-
मेरा पहला प्रयास इस प्रकार है
PATH
से उठाया गया, पोस्ट इंस्टॉल स्क्रिप्ट अलग दुभाषिया के साथ निष्पादित की जाएगी जो किसी समस्या का कारण बन सकती है। - यह ड्राई-रन इत्यादि के खिलाफ सुरक्षित नहीं है, जिसे मैं इसे एक फ़ंक्शन में लपेटकर और
distutils.cmd.Command.execute
के साथ कॉल करके उपाय कर सकता हूं।
मैं अपना समाधान कैसे सुधार सकता हूं? क्या ऐसा करने के लिए कोई अनुशंसित तरीका/सर्वोत्तम अभ्यास है? यदि संभव हो तो मैं एक और निर्भरता में खींचने से बचना चाहता हूं।
उन लोगों के लिए जो 'python setup.py install' का उपयोग करने में सक्षम होना चाहते हैं, साथ ही' पाइप इंस्टॉल ', देखें: http://stackoverflow.com/questions/21915469/python-setuptools-install-requires -इस-अनदेखा-जब-ओवरराइडिंग- cmdclass –