प्रोजेक्ट संरचना और pyproject.toml
पैकेज की संरचना तैयार करें
प्रोजेक्ट संरचना और pyproject.toml, CoddyKit पर Python Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
अपने कोड को पैकेज में क्यों बदलें
स्क्रिप्ट आपकी मशीन पर रहती है; पैकेज को pip install के माध्यम से कोई भी स्थापित कर सकता है। पैकेजिंग कोड के फ़ोल्डर को वितरित, संस्करणयुक्त और पुन:प्रयोग योग्य इकाई में बदल देती है।
पहला कदम एक साफ़ परियोजना संरचना और एक कॉन्फ़िगरेशन फ़ाइल बनाना है।
src संरचना
अनुशंसित संरचना आपके आयात योग्य कोड को src/ निर्देशिका के अंदर रखती है:
src/mypackage/__init__.pysrc/mypackage/core.pypyproject.tomlREADME.mdऔरtests/
src संरचना परियोजना के मूल फ़ोल्डर से आपके कोड को गलती से आयात करने के बजाय स्थापित प्रति को आयात करने से रोकती है।
__init__.py फ़ाइल
__init__.py किसी निर्देशिका को आयात योग्य पैकेज के रूप में चिह्नित करती है और पैकेज को पहली बार आयात किए जाने पर चलती है। मुख्य नामों को आयात करके सार्वजनिक एपीआई उपलब्ध कराने का स्थान भी यही है।
पैकेज बनाने के लिए एक खाली __init__.py भी पर्याप्त है।
package_dir = 'src/mypackage'
files = ['__init__.py', 'core.py', 'utils.py']
for f in files:
print(package_dir + '/' + f)
print('Importable as:', 'mypackage')pyproject.toml क्या है
pyproject.toml आधुनिक पाइथन पैकेजिंग के लिए एकल, मानकीकृत कॉन्फ़िगरेशन फ़ाइल है (PEP 518/621)। अधिकांश परियोजनाओं में यह पुरानी setup.py का स्थान लेती है और निर्माण औज़ारों द्वारा पढ़ी जाती है।
इसमें TOML प्रारूप का उपयोग होता है: वर्गाकार कोष्ठकों में खंड और कुंजी = मान वाली पंक्तियाँ।
build-system तालिका
[build-system] तालिका औज़ारों को बताती है कि आपका पैकेज कैसे बनाया जाए। एक सामान्य विकल्प है:
requires = ['setuptools', 'wheel']build-backend = 'setuptools.build_meta'
अन्य बैकएंड में हैचलिंग और फ्लिट शामिल हैं; विचार वही रहता है।
project तालिका
[project] तालिका में मेटाडेटा होता है: name, version, description, authors, readme, requires-python और dependencies। PyPI पर उपयोगकर्ताओं को यही दिखाई देता है।
इसे अपने पैकेज का पहचान-पत्र समझें।
project = {
'name': 'mytool',
'version': '0.1.0',
'requires-python': '>=3.9',
'dependencies': ['requests>=2.0'],
}
for k, v in project.items():
print(k, '=', v)नामकरण के नियम
पैकेज का नाम PyPI पर अद्वितीय होना चाहिए और सामान्यीकरण के नियमों का पालन करता है: बड़े और छोटे अक्षरों में अंतर नहीं होता तथा हाइफ़न और अंडरस्कोर को समान माना जाता है। अपलोड के समय टकराव से बचने के लिए नाम तय करने से पहले उसकी उपलब्धता जाँच लें।
name = 'My_Cool.Tool'
normalized = name.lower().replace('_', '-').replace('.', '-')
print('PyPI normalized name:', normalized)निर्भरताएँ घोषित करना
रनटाइम निर्भरताओं को dependencies के अंतर्गत 'requests>=2.28,<3' जैसी संस्करण सीमाओं के साथ सूचीबद्ध करें। वैकल्पिक अतिरिक्त सुविधाएँ [project.optional-dependencies] के अंतर्गत रखें; उन्हें pip install mytool[dev] के माध्यम से स्थापित किया जा सकता है।
सीमाओं को उतना खुला रखें जितना सुरक्षित हो, ताकि आपका पैकेज अन्य पैकेजों के साथ सह-अस्तित्व में रह सके।
प्रवेश बिंदु
कमांड-लाइन औज़ार भेजने के लिए [project.scripts] में mytool = 'mypackage.cli:main' जैसी प्रविष्टि जोड़ें। स्थापित करने के बाद, mytool लिखने पर वह फ़ंक्शन चल जाता है। ब्लैक या पाइ.टेस्ट जैसे कमांड-लाइन इंटरफ़ेस अपने आदेश इसी तरह उपलब्ध कराते हैं।
गैर-कोड फ़ाइलें शामिल करना
डेटा फ़ाइलें (टेम्पलेट, जेएसओएन) अपने-आप शामिल नहीं होतीं। निर्माण बैकएंड में पैकेज डेटा कॉन्फ़िगर करें, ताकि फ़ाइलें व्हील के अंदर भेजी जाएँ। इसे भूल जाना उन सामान्य त्रुटियों का कारण बनता है जिनमें कोड स्थानीय रूप से काम करता है, लेकिन स्थापित करने पर टूट जाता है।
विकास के लिए संपादन योग्य स्थापनाएँ
विकास के दौरान अपने पैकेज को pip install -e . के साथ संपादन योग्य रूप में स्थापित करें। स्रोत में किए गए परिवर्तन फिर से स्थापित किए बिना तुरंत प्रभावी हो जाते हैं। इसके लिए सही pyproject.toml आवश्यक है, इसलिए इसे जल्दी तैयार करने का यह एक और कारण है।
पैकेज पर बार-बार काम करते समय संपादन योग्य स्थापनाएँ सबसे तेज़ प्रतिक्रिया चक्र देती हैं।
त्वरित जाँच
अपने परियोजना ढाँचे के ज्ञान की जाँच करें।
पुनरावलोकन
आपने एक पैकेज की संरचना तैयार की:
- पैकेजों को चिह्नित करने वाली
__init__.pyके साथ src संरचना का उपयोग करें pyproject.tomlमानक कॉन्फ़िगरेशन है:[build-system]और[project]name,version,requires-pythonऔरdependenciesघोषित करें- कमांड-लाइन इंटरफ़ेस के लिए
[project.scripts]प्रवेश बिंदु जोड़ें और पैकेज डेटा कॉन्फ़िगर करें
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 76
- पाठ
- 320
अक्सर पूछे जाने वाले प्रश्न
क्या “प्रोजेक्ट संरचना और pyproject.toml” पाठ निःशुल्क है?
हाँ—“प्रोजेक्ट संरचना और pyproject.toml” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“प्रोजेक्ट संरचना और pyproject.toml” में मैं क्या सीखूँगा?
पैकेज की संरचना तैयार करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Python Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“प्रोजेक्ट संरचना और pyproject.toml” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Python Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Python Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- प्रोजेक्ट संरचना और pyproject.toml
- build से निर्माण
- संस्करण और मेटाडेटा
- twine से प्रकाशित करना