2009-07-12 8 views
28

मैंने एक पायथन स्क्रिप्ट बनाई है जिसका उद्देश्य कमांड लाइन से उपयोग किया जाना है। मैं इसे पैकेजिंग के बारे में कैसे जा सकता हूं? यह मेरा पहला पायथन पैकेज है और मैंने setuptools के बारे में कुछ पढ़ा है, लेकिन मुझे अभी भी यह सुनिश्चित करने का सबसे अच्छा तरीका नहीं है।कमांड लाइन को कैसे पैकेज करें पाइथन स्क्रिप्ट


समाधान

मैं कुंजी विन्यास के साथ setup.py का उपयोग कर समाप्त हो गया नीचे नोट:

setup(
.... 
    entry_points=""" 
[console_scripts] 
mycommand = mypackage.mymodule:main 
""", 
.... 
) 

यहाँ संदर्भ में एक अच्छा example है।

+0

कौन सा मंच के लिए लक्षित संकुल के रूप में लागू नहीं किया जा सकता (एस) क्या आप तैनात होंगे? – ChristopheD

+0

आदर्श रूप से, * निक्स या खिड़कियां। – Zach

उत्तर

3

@Zach, @ soulmerge के उत्तर पर आपकी टिप्पणी में अपनी स्पष्टीकरण देने के बाद, ऐसा लगता है कि आपको distutils - here के संबंध में दिए गए निर्देशों के अनुसार setup.py लिखना है, यह है कि आप pypi पर कैसे पंजीकरण करते हैं, और here पंजीकृत होने के बाद pypi पर अपलोड करने के तरीके पर - और संभवतः (अगर आपको कुछ अतिरिक्त कार्यक्षमता की आवश्यकता होती है जो कि खुद को डिस्ट्यूट आपूर्ति करती है) सेटअपtools जोड़ें, जिसमें easy_install निर्देश here के माध्यम से भाग है।

+0

यह उत्तर सौभाग्य से, पुराना है। जानकारी का एक अच्छा स्रोत अब https://packaging.python.org/en/latest/ है, साथ ही लेख जो मैंने अपने उत्तर में बताया है। –

2

पैकेजिंग द्वारा आपका क्या मतलब है? यदि यह एक बॉक्स पर चलने वाली एक स्क्रिप्ट है जिसमें पहले से ही पाइथन स्थापित है, तो आपको फ़ाइल की पहली पंक्ति में shebang डालना होगा और यही वह है।

यदि आप विंडोज के तहत या बिना किसी पाइथन के बॉक्स पर निष्पादित करना चाहते हैं, तो आपको pyinstaller जैसे बाहरी कुछ की आवश्यकता होगी।

यदि आपका प्रश्न कॉन्फ़िगरेशन/डेटा फ़ाइलों को कहां रखना है, तो आपको प्लेटफार्म-निर्भरता (जैसे registry या home folder में लिखना) की आवश्यकता होगी, जहां तक ​​मुझे पता है।

+0

इसमें दो पायथन फाइलें हैं।मैं इसे PiPy पर वितरित करने के लिए पैकेज करना चाहता हूं, उदाहरण के लिए, और easy_install के साथ स्थापित किया गया है। – Zach

4

बल्कि setuptools कार्यवाही की गैर मानक तरीका का उपयोग करने से, यह संभव सीधे distutils सेटअप के समारोह पर भरोसा करने, scripts तर्क का उपयोग, के रूप में यहां कहा गया है: http://docs.python.org/distutils/setupscript.html#installing-scripts

from distutils import setup 
setup(
    ..., 
    scripts=['path/to/your/script',], 
    ... 
) 

यह आप रहने की अनुमति देता संगत क) सभी पायथन संस्करणों के साथ और बी) बाहरी निर्भरता के रूप में setuptools पर भरोसा नहीं करना है।

1

पिछले महीने, मैंने आपके प्रश्न का उत्तर देने वाला एक लेख लिखा है। वहाँ http://gehrcke.de/2014/02/distributing-a-python-command-line-application/

, मैं सिर्फ वर्तमान में सिफारिश की विधियों (सुतली, distutils के बजाय शुद्ध setuptools, entry_points शब्दकोश में console_scripts कुंजी, ...), अजगर 2 और 3 के लिए जो काम का उपयोग कर रहा: आप इसे यहाँ पा सकते हैं।

0

जो लोग पायथन पैकेजिंग में शुरुआती हैं, उनके लिए मैं इस Python Packaging Tutorial के माध्यम से जाने का सुझाव देता हूं। ट्यूटोरियल के बारे में

नोट:

इस समय, इस दस्तावेज़ केवल पायथन 2.x पर केंद्रित है, और अजगर 3.x

संबंधित मुद्दे