खोज…


पैरामीटर

पैरामीटर प्रयोग
name आपके वितरण का नाम।
version आपके वितरण का संस्करण स्ट्रिंग।
packages शामिल करने के लिए पायथन पैकेज (यानी, निर्देशिका युक्त मॉड्यूल) की सूची। इसे मैन्युअल रूप से निर्दिष्ट किया जा सकता है, लेकिन आमतौर पर इसके बजाय setuptools.find_packages() का उपयोग किया जाता है।
py_modules शीर्ष-स्तरीय पायथन मॉड्यूल की सूची (जो कि, एकल .py फाइलें) शामिल करने के लिए है।

टिप्पणियों

अजगर पैकेजिंग पर अधिक जानकारी के लिए देखें:

परिचय

आधिकारिक पैकेज लिखने के लिए एक पैकेजिंग उपयोगकर्ता गाइड है

Setup.py का उद्देश्य

सेटअप स्क्रिप्ट डिस्टुटिल्स का उपयोग करके मॉड्यूल के निर्माण, वितरण और स्थापित करने में सभी गतिविधि का केंद्र है। यह उद्देश्य सॉफ्टवेयर की सही स्थापना है।

यदि आप सब करना चाहते हैं एक फ़ाइल नामक एक मॉड्यूल को वितरित करना है, एक फ़ाइल foo.py में सम्‍मिलित है, तो आपकी सेटअप स्क्रिप्ट इस प्रकार हो सकती है:

from distutils.core import setup

setup(name='foo',
      version='1.0',
      py_modules=['foo'],
      )

इस मॉड्यूल के लिए एक स्रोत वितरण बनाने के लिए, आप एक सेटअप स्क्रिप्ट, setup.py, उपरोक्त कोड युक्त, और एक टर्मिनल से इस कमांड को चलाने के लिए बनाएंगे:

python setup.py sdist

sdist आपके सेटअप स्क्रिप्ट setup.py, और अपने मॉड्यूल foo.py युक्त एक संग्रह फ़ाइल (जैसे, यूनिक्स पर टारबॉल, विंडोज पर ज़िप फ़ाइल) और आपका मॉड्यूल foo.py बनाएगा। संग्रह फ़ाइल को foo-1.0.tar.gz (या .zip) नाम दिया जाएगा, और एक निर्देशिका foo-1.0 में अनपैक किया जाएगा।

यदि कोई अंतिम उपयोगकर्ता आपके फू मॉड्यूल को स्थापित करना चाहता है, तो उसे केवल फू-1.0.tar.z डाउनलोड करना है (या .zip), इसे अनपैक करें, और foo-1.0 डायरेक्टरी से-रन करें

python setup.py install

अपने अजगर पैकेज में कमांड लाइन स्क्रिप्ट जोड़ना

अजगर पैकेज के अंदर कमांड लाइन स्क्रिप्ट आम हैं। आप अपने पैकेज को इस तरह से व्यवस्थित कर सकते हैं कि जब कोई उपयोगकर्ता पैकेज स्थापित करता है, तो स्क्रिप्ट उनके पथ पर उपलब्ध होगी।

यदि आपके पास greetings पैकेज था जिसमें कमांड लाइन स्क्रिप्ट hello_world.py

greetings/
   greetings/
      __init__.py
      hello_world.py

आप उस स्क्रिप्ट को चला सकते हैं:

python greetings/greetings/hello_world.py

हालाँकि अगर आप इसे ऐसे ही चलाना चाहेंगे:

hello_world.py

आप जोड़कर इस लक्ष्य को हासिल कर सकते हैं scripts आपके लिए setup() में setup.py इस तरह:

from setuptools import setup
setup(
  name='greetings',
  scripts=['hello_world.py']
)

जब आप अभिवादन पैकेज स्थापित करते हैं, तो hello_world.py आपके पथ में जुड़ जाएगा।

प्रवेश बिंदु जोड़ने के लिए एक और संभावना होगी:

entry_points={'console_scripts': ['greetings=greetings.hello_world:main']}

इस तरह आपको बस इसे चलाना होगा:

greetings

Setup.py में स्रोत नियंत्रण मेटाडेटा का उपयोग करना

setuptools_scm एक आधिकारिक रूप से धन्य पैकेज है जो आपके पैकेज की संस्करण संख्या निर्धारित करने के लिए Git या Mercurial मेटाडेटा का उपयोग कर सकता है, और इसमें शामिल करने के लिए पायथन पैकेज और पैकेज डेटा ढूंढ सकता है।

from setuptools import setup, find_packages

setup(
    setup_requires=['setuptools_scm'],
    use_scm_version=True,
    packages=find_packages(),
    include_package_data=True,
)

यह उदाहरण दोनों विशेषताओं का उपयोग करता है; संस्करण के लिए केवल SCM मेटाडेटा का उपयोग करने के लिए, कॉल को अपनी मैन्युअल पैकेज सूची के साथ find_packages() बदलें, या केवल पैकेज खोजक का उपयोग करें, use_scm_version=True निकालें।

स्थापना विकल्प जोड़ना

जैसा कि पिछले उदाहरणों में देखा गया है, इस लिपि का मूल उपयोग है:

python setup.py install

लेकिन और भी विकल्प हैं, जैसे पैकेज को स्थापित करना और कोड को बदलने और इसे फिर से स्थापित किए बिना परीक्षण करने की संभावना है। यह प्रयोग किया जाता है:

python setup.py develop

यदि आप Sphinx प्रलेखन या फोरट्रान कोड के निर्माण जैसे विशिष्ट कार्य करना चाहते हैं, तो आप इस तरह अपना खुद का विकल्प बना सकते हैं:

cmdclasses = dict()

class BuildSphinx(Command):

    """Build Sphinx documentation."""

    description = 'Build Sphinx documentation'
    user_options = []

    def initialize_options(self):
        pass

    def finalize_options(self):
        pass

    def run(self):
        import sphinx
        sphinx.build_main(['setup.py', '-b', 'html', './doc', './doc/_build/html'])
        sphinx.build_main(['setup.py', '-b', 'man', './doc', './doc/_build/man'])

cmdclasses['build_sphinx'] = BuildSphinx

setup(
...
cmdclass=cmdclasses,
)

initialize_options और finalize_options run फ़ंक्शन के पहले और बाद में निष्पादित किए जाएंगे क्योंकि उनके नाम से पता चलता है।

उसके बाद, आप अपने विकल्प पर कॉल कर पाएंगे:

python setup.py build_sphinx


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow