मैं अपने पैकेज के लिए एक अच्छा पायथनिस्टा और PEP 338 का पालन करने की कोशिश कर रहा हूं, मैं तैनाती पर योजना बना रहा हूं।मैं कंसोल_स्क्रिप्ट प्रविष्टि बिंदु उत्पन्न करने के लिए setuptools का उपयोग कैसे कर सकता हूं जो `python -m mypackage` कहता है?
मैं setuptools entry_points{'console_scripts': ... }
विकल्पों का उपयोग करके python setuptools install
पर अपनी निष्पादन योग्य स्क्रिप्ट उत्पन्न करने का भी प्रयास कर रहा हूं।
python -m mypackage
(और पास * args, ** kwargs) कहने वाली बाइनरी उत्पन्न करने के लिए मैं एंट्री पॉइंट्स का उपयोग कैसे कर सकता हूं?
यहाँ कुछ प्रयास मुझे कोई सफलता के साथ बना दिया है:
setuptools(
...
(1)
entry_points=
{'console_scripts': ['mypkg=mypkg.__main__'],},
(2)
entry_points=
{'console_scripts': ['mypkg=mypkg.main'],},
(3)
entry_points=
{'console_scripts': ['mypkg=python -m mypkg'],},
प्राथमिक संसाधनों मैं उपयोग कर रहा है:
- http://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation
- https://www.python.org/dev/peps/pep-0338/
- http://www.scotttorborg.com/python-packaging/command-line-scripts.html
- http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/
यह मेरे लिए काम करता है, हालांकि 'myscript' को कॉल करते समय, मेरा मुख्य() फ़ंक्शन दो बार कहा जाता है। मेरे मुख्य कार्य में केवल 'प्रिंट ("सफलता!")' कथन शामिल है, और मुझे आउटपुट दो बार मिलता है। – ben
इसमें जोड़ने के लिए, 'python -m script_proj' को कॉल करने से केवल 1 आउटपुट – ben
@ rm-rf_ उत्पन्न होगा, ऐसा लगता है कि यह मेरे लिए काम करता है। 'myscript' प्रिंट करता है 'python -m script_proj' केवल एक' हैलो वर्ल्ड! '...हम्म – cel