Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन मॉड्यूल संरचना के लिए सम्मेलन (कन्वेंशन) क्या है?

यहां एक नमूना प्रोजेक्ट है जो आपके प्रोजेक्ट को संरचित करने का एक बहुत अच्छा तरीका दिखाता है: https://github.com/kennethreitz/samplemod। यह प्रोजेक्ट "sample" मॉड्यूल बनाने के बारे में है। डायरेक्टरी संरचना इस प्रकार दिखती है:


README.rst
LICENSE
setup.py
requirements.txt
sample/__init__.py
sample/core.py
sample/helpers.py
docs/conf.py
docs/index.rst
tests/test_basic.py
tests/test_advanced.py

प्रत्येक घटक का विवरण

README.rst फ़ाइल:

यह फ़ाइल मॉड्यूल का संक्षिप्त विवरण देने, इसे कैसे सेट करें, कैसे उपयोग करें, आदि के लिए है।

LICENSE:

लाइसेंस टेक्स्ट और कोई कॉपीराइट दावे शामिल हैं।

setup.py:

यह पायथन का बहु-प्लेटफॉर्म इंस्टॉलर और मेक फ़ाइल का उत्तर है। यदि आप कमांड-लाइन इंस्टॉलेशन से परिचित हैं, तो `make && make install` `python setup.py build && python setup.py install` में अनुवादित होता है। इसलिए यह उपयोगकर्ता मशीन पर आपके प्रोजेक्ट को बिल्ड करने के लिए उपयोग किया जाता है।

requirements.txt:

एक पिप आवश्यकता फ़ाइल को प्रोजेक्ट में योगदान के लिए आवश्यक निर्भरताओं को निर्दिष्ट करना चाहिए: परीक्षण, निर्माण, और दस्तावेज़ीकरण उत्पन्न करना। यदि आपके प्रोजेक्ट में कोई विकास निर्भरता नहीं है, या आप `setup.py` के माध्यम से विकास वातावरण सेटअप पसंद करते हैं, तो यह फ़ाइल अनावश्यक है।

docs/:

इस डायरेक्टरी में आपके प्रोजेक्ट का दस्तावेज़ीकरण होता है।

tests/:

आपके सभी परीक्षण इस डायरेक्टरी में होने चाहिए। प्रारंभ में, आपके पास एक ही टेस्ट फ़ाइल होगी। जैसे-जैसे वे बढ़ते हैं, आप अपने टेस्ट को अपने मॉड्यूल डायरेक्टरी की तरह संरचित कर सकते हैं।

sample/:

इस डायरेक्टरी में आपका वास्तविक मॉड्यूल कोड होता है। यदि आपका मॉड्यूल केवल एक फ़ाइल से मिलकर बना है, तो आप इसे सीधे अपने रिपॉजिटरी के रूट में `sample.py` के रूप में रख सकते हैं। आपकी लाइब्रेरी एक अस्पष्ट `src` या `python` सबडायरेक्टरी में नहीं होनी चाहिए। यदि आप चाहते हैं कि यह मॉड्यूल एक पैकेज के भीतर रहे तो इसमें एक `__init__.py` फ़ाइल होगी।

आधुनिक मानक: src लेआउट + pyproject.toml


myproject/
├── pyproject.toml          # PEP 621 कॉन्फ़िगरेशन
├── README.md
├── LICENSE
├── src/
│   └── mypackage/
│       ├── __init__.py
│       ├── core.py
│       └── helpers.py
├── tests/
│   ├── __init__.py
│   ├── test_core.py
│   └── test_helpers.py
├── docs/
│   ├── conf.py
│   └── index.md
├── .github/workflows/      # CI/CD
├── .pre-commit-config.yaml
└── .gitignore

src लेआउट के लाभ

  • इंस्टॉल किए गए पैकेज के साथ इम्पोर्ट टकराव रोकता है
  • `pip install -e .` सही तरीके से काम करता है
  • टेस्ट इंस्टॉल किए गए संस्करण के विरुद्ध चलते हैं
  • पैकेजिंग टूल्स (setuptools, poetry, hatch) द्वारा समर्थित

आवश्यक फ़ाइलें चेकलिस्ट

फ़ाइलआवश्यकउद्देश्य
pyproject.toml / setup.pyहांबिल्ड/इंस्टॉल कॉन्फ़िगरेशन
README.mdहांप्रोजेक्ट विवरण
LICENSEहांकानूनी
.gitignoreहांGit बहिष्करण
requirements.txt / dependenciesअनुशंसितनिर्भरता
tests/अनुशंसितगुणवत्ता आश्वासन
docs/वैकल्पिकदस्तावेज़ीकरण
  1. .bashrc फाइल क्या है और इसका उपयोग कैसे करें .bashrc फाइल क्या है और इसका उपयोग कैसे करें

    .bashrc फाइल क्या है? BASH (Bourne Again Shell) लिनक्स का सबसे आम शेल है। .bashrc एक शेल स्क्रिप्ट है जो हर बार नया शेल खोलने पर ऑटोमैटिकली चलती है। यह आपके शेल वातावरण को अनुकूलित करने के लिए उपयोग होती है। .bashrc फाइलें कहां होती हैं? find / -name .bashrc आमतौर पर तीन मुख्य फाइलें मिलती हैं: /e

  1. - Python में Packages क्या हैं?

    Python Packages को समझना Packages को समझने के लिए, आपको Modules के बारे में भी जानना होगा। कोई भी Python File एक Module होती है, इसका नाम File के Base Name/Module के __name__ Property बिना .py Extension के होता है। Package Python Modules का Collection है, यानी एक Package, Python Modules की एक Dire

  1. - Python Module और Python Package में क्या Difference है?

    Module vs Package कोई भी Python File एक Module होती है, इसका नाम File के Base Name/Module के __name__ Property बिना .py Extension के होता है। Package Python Modules का Collection है, यानी एक Package, Python Modules की एक Directory होती है जिसमें एक Additional __init__.py File होती है। __init__.py