macOS पर किसी लोकल Python प्रोजेक्ट को एडिटेबल मोड में इंस्टॉल करने के लिए, Terminal खोलें, प्रोजेक्ट डायरेक्टरी में जाएं, एक वर्चुअल एनवायरमेंट बनाएं और एक्टिवेट करें, फिर python -m pip install -e . चलाएं। यह Python इम्पोर्ट्स को आपके वर्किंग सोर्स ट्री से लिंक करता है, जिससे Python फ़ाइलों में किए गए बदलाव बिना दोबारा इंस्टॉल किए नए इंटरप्रेटर सत्रों में उपलब्ध हो जाते हैं। प्रोजेक्ट को अभी भी पैकेजिंग मेटाडेटा की आवश्यकता होती है, और सटीक एडिटेबल व्यवहार इसके बिल्ड बैकएंड पर निर्भर करता है।
एडिटेबल इंस्टॉल क्या करता है
एक सामान्य इंस्टॉल प्रोजेक्ट को चुने गए Python एनवायरमेंट में एक इंस्टॉल किए गए पैकेज के रूप में रखता है। इसके विपरीत, एक एडिटेबल इंस्टॉल डेवलपमेंट डायरेक्टरी के सोर्स को Python के इम्पोर्ट पाथ पर उपलब्ध कराता है। यह तब उपयोगी होता है जब आप उस प्रोजेक्ट में स्थानीय रूप से बदलाव कर रहे हों; इसका मतलब यह नहीं है कि प्रत्येक प्रोजेक्ट फ़ाइल या गैर-Python रिसोर्स अपने आप उसी तरह हैंडल हो जाते हैं। pip की लोकल प्रोजेक्ट इंस्टॉल गाइड
एडिटेबल मोड डिपेंडेंसी बदलावों को भी गायब नहीं करता है। जब तक आप --no-deps पास नहीं करते, pip प्रोजेक्ट द्वारा घोषित डिपेंडेंसीज़ को सामान्य तरीके से इंस्टॉल करता है। Python सोर्स कोड में किए गए बदलाव आमतौर पर अगले रन पर दिखाई देते हैं, लेकिन प्रोजेक्ट मेटाडेटा, जनरेटेड कमांड-लाइन स्क्रिप्ट्स, या कंपाइल्ड कोड में बदलाव के लिए रीइंस्टॉल या रीबिल्ड करने की आवश्यकता हो सकती है। Python पैकेजिंग यूज़र गाइड: प्रोजेक्ट्स की पैकेजिंग और वितरण
macOS पर एक वर्चुअल एनवायरमेंट तैयार करें
Terminal में, प्रोजेक्ट के रूट फ़ोल्डर में जाएं, वह डायरेक्टरी जिसमें pyproject.toml या समर्थित लेगसी setup.py शामिल है। नीचे दिया गया cd कमांड यह मानकर चलता है कि फ़ोल्डर आपकी होम डायरेक्टरी में है; यदि पाथ में स्पेस हैं तो उसे कोट्स (उद्धरण चिह्नों) में रखें।
cd "$HOME/path/to/my-project"
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip --version
वर्चुअल एनवायरमेंट इस प्रोजेक्ट के इंस्टॉल किए गए पैकेजों को अन्य Python एनवायरमेंट्स से अलग रखता है। एक्टिवेशन के बाद, python को एनवायरमेंट के इंटरप्रेटर को संदर्भित करना चाहिए, इसलिए python -m pip का उपयोग pip को उस इंटरप्रेटर से जोड़ता है। Python का दस्तावेज़ venv को आइसोलेटेड एनवायरमेंट बनाने के रूप में वर्णित करता है और POSIX शेल्स के लिए एक्टिवेशन कमांड का दस्तावेज़ीकरण करता है, जिसमें वर्तमान macOS Terminal सेटअप में डिफ़ॉल्ट रूप से उपयोग किया जाने वाला शेल भी शामिल है। Python दस्तावेज़: venv
यदि python3 नहीं मिलता है, तो पहले Python 3 इंटरप्रेटर इंस्टॉल करें या उसका पता लगाएं; macOS यह गारंटी नहीं देता है कि उस कमांड के तहत डेवलपमेंट के लिए तैयार Python उपलब्ध है। यदि प्रोजेक्ट किसी समर्थित Python वर्ज़न को निर्दिष्ट करता है, तो .venv बनाने के लिए उस वर्ज़न का उपयोग करें। जब किसी प्रोजेक्ट एनवायरमेंट से काम चल सकता हो, तो सिस्टम-मैनेज्ड Python में पैकेज इंस्टॉल करने से बचें।
प्रोजेक्ट को एडिटेबल मोड में इंस्टॉल करें
एनवायरमेंट एक्टिव होने और Terminal के अभी भी प्रोजेक्ट रूट पर होने के साथ, चलाएं:
python -m pip install -e .
यहाँ, -e का अर्थ एडिटेबल है और . का अर्थ वर्तमान डायरेक्टरी है। pip अपेक्षा करता है कि किसी लोकल प्रोजेक्ट डायरेक्टरी में pyproject.toml या setup.py हो। आधुनिक प्रोजेक्ट आमतौर पर pyproject.toml में एक बिल्ड बैकएंड घोषित करते हैं; pip उस बैकएंड से एडिटेबल इंस्टॉलेशन करने के लिए कहता है। इसे अपेक्षित रूप से काम करने के लिए बैकएंड को एडिटेबल-इंस्टॉल इंटरफ़ेस का समर्थन करना चाहिए। pip इंस्टॉल संदर्भ, pip बिल्ड सिस्टम इंटरफ़ेस
किसी भिन्न डायरेक्टरी से इंस्टॉल करने के लिए, . के स्थान पर उसका पाथ प्रदान करें, उदाहरण के लिए python -m pip install -e "$HOME/path/to/my-project"। पाथ को कोट्स में रखना स्पेस और शेल मेटाकैरेक्टर्स से बचाता है। इंस्टॉल आपके द्वारा उपयोग किए गए python कमांड से जुड़े Python एनवायरमेंट पर लागू होता है।
एनवायरमेंट की पुष्टि करें और त्रुटियों का निदान करें
यह पुष्टि करने के लिए कि यह पैकेज और इसके एडिटेबल प्रोजेक्ट लोकेशन को सूचीबद्ध करता है, pip के इंस्टॉल्ड-प्रोजेक्ट व्यू की जाँच करें:
python -m pip list
फिर एक्टिवेटेड एनवायरमेंट से Python शुरू करें और इसके प्रलेखित (डॉक्यूमेंटेड) इम्पोर्ट नाम का उपयोग करके पैकेज को इम्पोर्ट करने का प्रयास करें। इम्पोर्ट नाम प्रोजेक्ट के वितरण (डिस्ट्रिब्यूशन) नाम से भिन्न हो सकता है, इसलिए अनुमान लगाने के बजाय प्रोजेक्ट के README या पैकेज डायरेक्टरी से परामर्श लें। यदि इम्पोर्ट केवल एक फ़ोल्डर से काम करता है, तो जाँचें कि इंस्टॉल लक्षित प्रोजेक्ट रूट की ओर इंगित करता है और पैकेज इसके बैकएंड द्वारा खोज (डिस्कवरी) के लिए कॉन्फ़िगर किया गया है।
यदि pip कहता है कि डायरेक्टरी इंस्टॉल करने योग्य नहीं है, तो सत्यापित करें कि आप सही रूट में हैं और इसमें pyproject.toml या setup.py शामिल है। यदि बिल्ड बैकएंड एडिटेबल मोड को अस्वीकार करता है, तो उसके दस्तावेज़ों के अनुसार प्रोजेक्ट के बैकएंड को अपडेट या कॉन्फ़िगर करें; हर पुराना या कस्टम बैकएंड एडिटेबल इंस्टॉल्स का समर्थन नहीं करता है। एक आधुनिक pyproject.toml प्रोजेक्ट के लिए, pip बैकएंड के PEP 660 एडिटेबल हुक का उपयोग करता है। pip बिल्ड सिस्टम इंटरफ़ेस
यदि किसी प्रोजेक्ट परिवर्तन से डिपेंडेंसीज़, एंट्री पॉइंट्स जुड़ते हैं, या मेटाडेटा बदलता है, तो python -m pip install -e . को फिर से चलाएं। कंपाइल्ड एक्सटेंशन्स के लिए, प्रोजेक्ट के प्रलेखित बिल्ड चरणों को भी चलाएं। pip नोट करता है कि एडिटेबल और सामान्य इंस्टॉल्स अलग तरह से व्यवहार कर सकते हैं, इसलिए एडिटेबल इंस्टॉल लोकल डेवलपमेंट के लिए है; यह किसी पैकेज को वितरित करने से पहले सामान्य इंस्टॉलेशन पाथ की जाँच करने का विकल्प नहीं है। pip की लोकल प्रोजेक्ट इंस्टॉल गाइड
स्रोत
Local project installs — pip
Packaging and distributing projects — Python Packaging Authority
pip install — pip
Build System Interface — pip
venv — Creation of virtual environments — Python Software Foundation