pip, venv और Project Environment
Virtual environment क्यों?
मान लीजिए एक laptop पर दो projects हैं: school report app जिसे pandas 1.5 चाहिए और नया dashboard जिसे pandas 2.2। दोनों एक ही global Python इस्तेमाल करें तो एक install करने से दूसरा टूट जाता है। Virtual environment (venv) हर project के लिए packages का अलग निजी folder है।
| Tool | क्या करता है |
|---|---|
pip | PyPI (pypi.org) से packages download और install करता है |
venv | एक project के लिए अलग Python environment बनाता है (Python 3 में built-in) |
requirements.txt | Exact package versions की list ताकि कोई भी वही environment दोबारा बना सके |
Step 1: environment बनाएँ
Terminal को अपने project folder के अंदर खोलें (VS Code में: Terminal → New Terminal) और चलाएँ:
# Windows py -m venv .venv # macOS / Linux python3 -m venv .venv
इससे .venv नाम का छिपा folder बनता है जिसमें Python launcher और pip की अपनी copy होती है। .venv नाम आम convention है – VS Code इसे अपने-आप पहचानता है।
Step 2: activate करें
| System | Command |
|---|---|
| Windows – Command Prompt | .venv\Scripts\activate |
| Windows – PowerShell | .venv\Scripts\Activate.ps1 |
| macOS / Linux | source .venv/bin/activate |
| Environment से बाहर | deactivate |
Activate होने के बाद prompt (.venv) से शुरू होता है। जाँचें कि Python अब project folder से आ रहा है:
(.venv) $ python -m pip --version (.venv) $ pip list
नए environment में सिर्फ़ pip होता है – आपके global packages नहीं। (आपके version numbers अलग होंगे; यह run Python 3.13 पर था।)
एक बार चलाएँ: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, फिर दोबारा activate करें। या Command Prompt इस्तेमाल करें।
Step 3: pip से packages install करें
pip install requests # latest version pip install requests==2.32.3 # exact version pip install "pandas>=2,<3" # any 2.x version pip install --upgrade requests # update pip uninstall requests # remove pip show requests # details: version, location, dependencies
requests install करने पर उसकी ज़रूरत वाले packages भी install होते हैं। pip install requests==2.32.3 के बाद pip freeze ने यह दिखाया:
python -m pip install … पक्का करता है कि pip उसी Python में install करे जिसे आप चलाते हैं। इससे मशहूर “install किया फिर भी ModuleNotFoundError” वाली समस्या नहीं आती।
Step 4: requirements.txt से project share करें
# save the exact versions you are using pip freeze > requirements.txt # on another computer (after creating and activating a new .venv) pip install -r requirements.txt
आपका Python code भी देख सकता है कि कौन से versions install हैं – bug reports में उपयोगी:
import sys
from importlib import metadata
print("Python", sys.version.split()[0])
print("inside a venv:", sys.prefix != sys.base_prefix)
for pkg in ["pip", "not-a-real-package"]:
try:
print(pkg, metadata.version(pkg))
except metadata.PackageNotFoundError:
print(pkg, "is not installed")Step 5: .venv को Git से बाहर रखें
.venv folder बड़ा है और सिर्फ़ आपके computer के लिए है। इसे कभी upload या दूसरे PC पर copy न करें। इसकी जगह requirements.txt commit करें और .gitignore में यह line जोड़ें:
.venv/ __pycache__/
साफ़ project layout
school-report/
├── .venv/ ← not committed
├── .gitignore
├── requirements.txt
├── README.md
├── report.py
└── data/
└── marks.csvआम errors और सुधार
| Error | कारण | सुधार |
|---|---|---|
pip is not recognized | Python PATH में नहीं | py -m pip (Windows) या “Add to PATH” tick करके Python दोबारा install |
Install के बाद ModuleNotFoundError | किसी दूसरे Python में install हुआ | venv activate करें; VS Code में interpreter .venv चुनें (Ctrl+Shift+P → Python: Select Interpreter) |
externally-managed-environment (Linux/Mac) | System Python सुरक्षित है | venv बनाइए – यही सही हल है |
| Project folder हटाया, venv टूटा | venv absolute paths रखता है | .venv delete करें, दोबारा बनाएँ, pip install -r requirements.txt |
अभ्यास
weather-appfolder बनाकर venv बनाएँ,requestsinstall करें औरrequirements.txtsave करें।.venvdelete करके environment सिर्फ़requirements.txtसे दोबारा बनाएँ।check_env.pyको venv के अंदर और बाहर चलाकर “inside a venv” line की तुलना करें।- VS Code में
.venvinterpreter चुनकर Run button से file चलाएँ।
सारांश
- एक project = एक
.venv:python -m venv .venv। - काम से पहले activate करें; prompt में
(.venv)दिखता है। python -m pip installसे install करें;pip freeze > requirements.txtसे versions लिखें।- requirements.txt commit करें, .venv ignore करें।
