Python'da virtual muhit (venv)

Har loyiha turli kutubxonalar va ularning turli versiyalarini talab qilishi mumkin. Hammasini bitta joyga o’rnatsangiz, ular to’qnashadi. Virtual muhit (venv) shu muammoni yechadi: har loyiha uchun alohida, mustaqil Python muhitini yaratadi.

Muammo: umumiy o’rnatma

Aytaylik, A loyiha bir kutubxonaning eski versiyasini, B loyiha esa yangi versiyasini talab qiladi. Ikkalasini tizimga umumiy o’rnatsangiz — biri ikkinchisini buzadi. Bitta versiya ikkala loyihaga to’g’ri kelmaydi.

Yechim: venv yaratish

venv har loyiha uchun alohida “quti” yaratadi. Terminalda loyiha papkasida:

python -m venv muhit

Bu muhit nomli papka yaratadi — unda loyihaning o’z Python’i va paketlari saqlanadi. Endi uni faollashtirish kerak:

# Windows:
muhit\Scripts\activate

# Linux / macOS:
source muhit/bin/activate

Faollashgach, terminal boshida (muhit) yozuvi paydo bo’ladi — endi o’rnatilgan paketlar faqat shu loyihaga tegishli bo’ladi.

Paket o’rnatish va tugatish

Muhit faol bo’lganda o’rnatilgan har narsa faqat shu loyihaga tegadi:

pip install requests

Ishni tugatgach, muhitdan chiqasiz:

deactivate

Amaliy mashq

Alohida muhit yarating:

  1. Yangi papka oching va ichida python -m venv .venv buyrug’ini bajaring;
  2. muhitni faollashtiring (Windows uchun activate skriptini ishga tushiring);
  3. pip list bilan o’rnatilgan paketlarni ko’ring — ro’yxat qanchalik qisqa?
  4. pip install requests bilan bitta paket o’rnating va qayta tekshiring;
  5. deactivate bilan chiqing va yana pip list qiling.

5-qadamda requests ko’rinyaptimi? Bu venv nima uchun kerakligini ko’rsatadi.

Qisqacha xulosa

  • Virtual muhit (venv) — loyiha uchun alohida, mustaqil Python muhiti.
  • Muammoni yechadi: turli loyihalarning paketlari to’qnashmaydi.
  • python -m venv muhit — yaratadi; activate — faollashtiradi.
  • Faol muhitda pip install faqat shu loyihaga o’rnatadi.
  • muhit papkasi Git’ga qo’shilmaydi; o’rniga requirements.txt saqlanadi.

Keyingi darslarda pip bilan paket boshqarish va boshqa amaliy mavzularni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi