अध्याय ४ · खण्ड I · 22 मिनेट
भर्चुअल वातावरण र प्याकेज व्यवस्थापन
हरेक परियोजनालाई आफ्नै सफा कोठा हुनुपर्छ। भर्चुअल वातावरणले प्रत्येक परियोजनाका निर्भरतालाई छुट्याउँछ, ताकि स्थापना एकअर्कासँग ठक्कर खाँदैनन्। पाँच मिनेटको बानीले गणनै नभएका घण्टा बचाउँछ।
तपाईंले building-ai-notes फोल्डरका लागि NumPy, pandas, र matplotlib स्थापना गर्नुभयो। अब कल्पना गर्नुहोस् कि तपाईंले दोस्रो परियोजना सुरु गर्नुभयो — टेलिग्राम बट, जुन python-telegram-bot v20 मा भर पर्छ। र कल्पना गर्नुहोस् त्यसले requests को पुरानो संस्करण ल्याउँछ जसले गत हप्ता building-ai-notes मा गरेको प्रयोग बिगार्छ। एकाएक केही पनि चल्दैन, र कुन स्थापनाले कुन कुरा बिगार्यो थाहा हुँदैन। यो समस्या भर्चुअल वातावरणले समाधान गर्छ। यिनी गम्भीर निर्माताहरूका लागि वैकल्पिक उपकरण होइनन्। यी आधारभूत भागहरू हुन्, र एक पटक नित्यकर्म सिकेपछि तपाईं यसबारे सोच्नै छाड्नुहुन्छ।
तस्बिर: हरेक परियोजनालाई आफ्नै कोठा
भर्चुअल वातावरणबिनै, तपाईंले चलाउने हरेक pip install ले प्याकेजलाई एउटै ठूलो साझा फोल्डरमा खसाल्छ जुन तपाईंको ल्यापटपका हरेक Python परियोजनाले देख्छ। भर्चुअल वातावरणसँग, हरेक परियोजनालाई आफ्नो स्थापित प्याकेजहरूको फोल्डर हुन्छ। वातावरण सक्रिय गर्नु भनेको आफ्ना मात्र औजार बिछ्याइएको सफा कोठामा छिर्नु हो।
फाइदा ठूलो छ: दुई परियोजनाले उही पुस्तकालयको फरक संस्करण प्रयोग गर्न सक्छन्, तपाईं अरूलाई नछोई एक परियोजनाका निर्भरता पुस्न सक्नुहुन्छ, र requirements.txt फाइल कसैलाई दिएपछि उसले तपाईंको सेटअप ठ्याक्कै पुन: निर्माण गर्न सक्छ।
venv ले बनाउने
Python सँगसँगै venv नामक निर्मित औजार आउँछ। परियोजना फोल्डरबाट:
python3 -m venv .venv
-m venv ले Python लाई आफ्नो venv मोड्युल चलाउन भन्छ। आर्गुमेन्ट .venv फोल्डर नाम हो — संयमले, यो डटबाट सुरु हुन्छ (जसले Unix मा लुकाउँछ) र परियोजनाभित्र बस्छ। यो आदेशपछि, तपाईंले परियोजनाभित्र .venv/ फोल्डर देखापरेको देख्नुहुनेछ।
अब सक्रिय गर्नुहोस्।
macOS / Linux मा:
source .venv/bin/activate
Windows (PowerShell) मा:
.venv\Scripts\Activate.ps1
तपाईंको टर्मिनल प्रम्प्ट बदलिन्छ — सामान्यतया (.venv) उपसर्ग देखापर्छ। यसले वातावरण सक्रिय छ भन्छ। अबदेखि, pip install ले प्याकेज .venv/ भित्र राख्छ, र python ले प्रणालीको होइन, .venv/ भित्रको Python लाई इङ्गित गर्छ।
दिनका लागि छाड्न:
deactivate
टर्मिनल बन्द गर्नुअघि निष्क्रिय पार्नु आवश्यक छैन। टर्मिनल बन्द गर्दा यो आफै हुन्छ।
वातावरणमा प्याकेज स्थापना
वातावरण सक्रिय भएपछि, निर्भरता सामान्य तरिकाले स्थापना गर्नुहोस्:
pip install numpy pandas matplotlib jupyter
सबै .venv/ भित्र जान्छन्। केही पनि बाहिर निस्किँदैन। स्थापित के छ हेर्न:
pip list
सटीक संस्करण साझा गर्न कैद गर्न:
pip freeze > requirements.txt
त्यसले यस्तो फाइल लेख्छ:
numpy==2.1.3
pandas==2.2.3
matplotlib==3.9.2
jupyter==1.1.1
यो फाइल पाएको कुनै पनि व्यक्ति (वा नयाँ ल्यापटपको भविष्यको तपाईं) ले एउटै आदेशमा वातावरण पुन: निर्माण गर्न सक्छन्:
pip install -r requirements.txt
requirements.txt लाई भविष्यको आफूसँगको करार ठान्नुहोस्। यसलाई संस्करण नियन्त्रण (अर्को खण्ड) मा राख्नुहोस् र नयाँ निर्भरता थप्दा अद्यावधिक गर्नुहोस्।
VS Code लाई जानकारी दिने
नोटबुक सेल चलाउँदा कुन Python प्रयोग गर्ने भनेर VS Code लाई थाहा हुनुपर्छ। वातावरण बनाएपछि:
- VS Code मा परियोजना फोल्डर खोल्नुहोस्।
- आदेश प्यालेट खोल्नुहोस् (
Cmd+Shift+P/Ctrl+Shift+P)। - “Python: Select Interpreter” खोजेर छान्नुहोस्।
- सूचीबाट तपाईंको परियोजनाको
.venvबाटो भएको छान्नुहोस् — सामान्यतया सूचीको सिरमा देखापर्छ।
त्यसपछि, नोटबुक सेल चलाउँदा, VS Code ले .venv/ भित्रको Python प्रयोग गर्छ। !pip list भएको सेल चलाएर पुष्टि गर्नुहोस् — त्यसले तपाईंले स्थापना गरेका कुरा मात्र देखाउनुपर्छ।
आधुनिक विकल्प: uv
uv नामक तुलनात्मक रूपमा नयाँ औजारले आधुनिक Python उपकरणलाई शान्तिपूर्वक कब्जा गर्दैछ। यसले venv र pip जस्तै काम गर्छ तर लगभग दश देखि सय गुणा छिटो हो, र आदेशहरू अलि सफा महसुस हुन्छन्:
# uv लाई एक पटक स्थापना गर्नुहोस्
pip install uv
# परियोजना फोल्डरमा
uv venv
uv pip install numpy pandas matplotlib
# requirements.txt बाट स्थापना
uv pip install -r requirements.txt
हामी उल्लेख गर्छौँ किनभने तपाईं यो बाहिर देख्नुहुनेछ — २०२६ मा धेरै ओपन-सोर्स परियोजनाले पूर्वनिर्धारित रूपमा प्रयोग गर्छन् — तर यो ट्र्याकका लागि सादा venv र pip पर्याप्त छ। नतिजा उस्तै हो; uv ले छिटो गर्छ।
वास्तविक समय बचाउने बानी
पहिलो हप्तापछि नित्यकर्म अदृश्य हुन्छ:
- नयाँ परियोजना सुरु गर्ने: फोल्डर बनाउनुहोस्,
python3 -m venv .venv, सक्रिय गर्नुहोस्, निर्भरता स्थापना गर्नुहोस्,pip freeze > requirements.txt, कमिट गर्नुहोस् (अर्को खण्ड)। - विद्यमान परियोजनामा फर्किने: फोल्डर खोल्नुहोस्, वातावरण सक्रिय गर्नुहोस्, काम सुरु गर्नुहोस्।
- नयाँ निर्भरता थप्ने:
pip install <name>, अनिpip freeze > requirements.txt, अनि कमिट।
तीन बानी, प्रत्येक पाँच सेकेन्डभन्दा कम। यिनलाई गम्भीरतापूर्वक लिनुपर्ने सैद्धान्तिक शुद्धताका लागि होइन — कुनै कुरा रातको 11 बजे डेडलाइनअघि बिग्रिँदा, “मैले X स्थापना गरेँ?” को सट्टा “मैले 2026 मा तीस परियोजनामा के स्थापना गरेँ?” प्रश्न आउँदैन।
आफ्नो बुझाइ जाँच्नुहोस्
Quick check
—तपाईंले भर्चुअल वातावरण सक्रिय गर्नुभयो, `pip install pandas` चलाउनुभयो, रातका लागि ल्यापटप बन्द गर्नुभयो, र अर्को बिहान नयाँ टर्मिनल विन्डो खोल्नुभयो। `python` टाइप गरेर `import pandas` कोसिस गर्नुहुन्छ — ModuleNotFoundError आउँछ। किन?
Quick check
—एक टिम सदस्यले गत महिना बनाएको Python परियोजना तपाईंलाई पठाउँछन्। तपाईं क्लोन गर्नुहुन्छ, फोल्डर खोल्नुहुन्छ, र चलाउन चाहनुहुन्छ। आदेशको सही क्रम के हो?
अब के आउँछ
तपाईंसँग प्रति परियोजना सफा कोठा छ। अर्को बानी त्यो कोठाको सामग्री सुरक्षित र साझायोग्य राख्ने हो: Git सँग संस्करण नियन्त्रण। यसले फाइलहरूको फोल्डरलाई परियोजना मा बदल्छ — इतिहास भएको, अरूलाई दिन सकिने, बिगारेपछि उल्ट्याउन सकिने केहीमा।