Neden Venv? (Python)

Hasan Gözcü
Kodcular
Published in
3 min readMay 1, 2022

Bu yazımda Python için çok önemli bir konu olan virtual environment’a kısaca değineceğim ve Python projelerimizde neden bu kadar önemli ona bakacağız.

VirtualEnv kısaca projelerinizde gerekli olan paketleri sistemden bağımsız bir şekilde kurup, kullanmanızı sağlayacak sanal ortam sağlayan bir yapıdır.

Peki buna neden ihtiyaç duyarız?

Fastapi kullanarak oluşturduğum 2 farklı projem olduğunu düşünelim;

Makineme aynı modülün 2 farklı versiyonunu set edemem. Bu durum problemlere sebep olur.

Ancak Venv yardımı ile her projem için farklı versiyonları kullanabilirim.

Kurulum: Öncelikle, sisteminizde ortamın olup olmadığını sorgulamak için terminale şu komutu girin:

Eğer sisteminizde virtualenv ortamı mevcutsa komut sonrası sürüm numarası dönecektir. Eğer ortam kurulu değilse 2 yoldan kurabiliriz:

Projene venv kurmak çok basit. (Sondaki venv ortama benim koyduğum isim)

Not: Eğer çalışmalarınızı Vscode üzerinden yapıyorsanız CTRL+SHIFT+P yapıp SELECT INTERPRETER yaparak sanal ortamını seçebilirsiniz. Bu işlemin ardından proje dosyanıza her girdiğinizde venv aktif olacaktır.

Komut satırında sanal ortamı aktif yapmak için;

Sanal ortamdan çıkmak istiyorsanız;

Python’da pip lediğiniz modüllere yani yüklediğiniz modüllere bakmak için pip freeze komutunu kullanabilirsiniz.

Python’da requirement.txt dosyası, genellikle belirli bir projeyi geliştirirken kullanılan tüm kitaplıklar, modüller ve paketler hakkındaki bilgileri kendi içinde depolayan bir dosya türüdür. Ayrıca, o projenin bağımlı olduğu veya çalıştırılması gereken tüm dosyaları ve paketleri depolar. Genellikle bu “requirement.txt” dosyası projelerinizin kök dizininde depolanır.

Bu dosya Python projelerinin çalışması için çok önemli bir detaydır. pip3 freeze > requirements.txt komutu ile yüklediğiniz ve kullandığınız modülleri ve sürümlerini bu dosyada depolayabilirsiniz.

Artık sizin projenizi kullanmak isteyen birinin gerekli sürümlerini kendi sanal ortamına kurması için pip install -r requirements.txt komutunu çalıştırması yeterli olacaktır.

--

--