(আগের Modules and Imports lesson থেকে) pip দিয়ে একটা package install করলে সাধারণত এটা globally install হয় — machine-এর প্রতিটা Python project জুড়ে শেয়ার করা। একটা virtual environment এর বদলে একটা project-কে installed package-এর নিজের আলাদা set দেয়।
Project A-এর একটা library-র version 1 দরকার; Project B-এর version 2 দরকার — globally install করলে, একটা সময়ে শুধু একটা সন্তুষ্ট করা যায়। প্রতি project-এ একটা virtual environment এটাকে একটা সমস্যাই না বানায়।
venv Python-এই built in — আলাদা install দরকার নেই।
python -m venv venv
# একটা isolated Python installation ধরে রাখা "venv" folder তৈরি করে# macOS / Linux
source venv/bin/activate
# Windows
venv\Scripts\activate
# terminal prompt এটা active তা দেখাতে বদলায়, যেমন:
(venv) $একবার active হলে, pip install শুধু এই environment-কে প্রভাবিত করে — system-wide Python বা অন্য কোনো project-এর environment-কে না।
(venv) $ pip install requests
# শুধু এই project-এর venv folder-এর ভেতরে install হয়(venv) $ deactivateএকটা requirements.txt file ঠিক একটা project-এর কী দরকার তা list করে, যাতে একজন teammate — বা একটা deployment server — একই environment আবার তৈরি করতে পারে।
# বর্তমান environment-এর package একটা file-এ save করুন
pip freeze > requirements.txt
# অন্য একটা machine-এ, এটা আবার তৈরি করুন
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt| Command | কী করে |
|---|---|
| python -m venv venv | একটা নতুন virtual environment তৈরি করে |
| source venv/bin/activate (বা Windows-এ venv\Scripts\activate) | বর্তমান terminal session-এর জন্য এটা activate করে |
| deactivate | system-wide Python-এ ফিরে যায় |
| pip freeze > requirements.txt | ঠিক কী install আছে তা রেকর্ড করে |
| pip install -r requirements.txt | একটা requirements.txt-এ যা list আছে সবকিছু আবার install করে |
কী commit করবেন না
venv folder নিজেই কখনো version control-এ commit করা উচিত না — যেকোনো machine-এ এটা requirements.txt থেকে regenerate হয়। একটা project-এর একদম শুরু থেকে এটা .gitignore-এ যোগ করুন।