Python

Python Sanal Ortam (venv) Nasıl Kurulur?

Python Sanal Ortam (venv) Nasıl Kurulur?

Modern yazılım geliştirme süreçlerinde birden fazla proje üzerinde aynı anda çalışmak kaçınılmazdır. Bu projelerin her biri farklı kütüphanelere, hatta aynı kütüphanenin birbiriyle uyumsuz farklı sürümlerine ihtiyaç duyabilir. Tüm paketleri işletim sisteminizin genel Python dizinine yüklemek, zamanla bağımlılık çakışmalarına ve sistem düzeyinde çalışan araçların bozulmasına yol açar. Python, bu sorunu kökten çözmek için sanal ortam (virtual environment) mekanizmasını sunar.

Python Sanal Ortam (venv) Nedir ve Neden Gereklidir?

Python sanal ortamı, projenize özel izole bir çalışma alanıdır. Bu ortam, kendi Python çalıştırıcısına (interpreter), standart kütüphane kopyalarına ve bağımsız bir paket dizinine sahiptir. Bir sanal ortam oluşturup etkinleştirdiğinizde, yüklediğiniz harici kütüphaneler işletim sisteminin geneline değil, yalnızca o ortama kurulur.

Sanal ortam kullanmanın temel kazanımları şunlardır:

  • Sürüm çakışmalarını önler: Bir projede Django 3.2 sürümünü kullanırken, diğerinde Django 5.0 sürümünü sorunsuz çalıştırabilirsiniz.
  • Temiz ve taşınabilir projeler sağlar: Projenizin tam olarak hangi kütüphanelere ihtiyaç duyduğunu net biçimde takip edebilirsiniz.
  • Sistem kararlılığını korur: İşletim sisteminizin kendi işleyişi için ihtiyaç duyduğu Python ortamına dokunmayarak çökme risklerini engellersiniz.
  • Güvenlik risklerini sınırlandırır: Test ettiğiniz güvensiz veya deneysel bir paket yalnızca ilgili izole dizinde kalır, diğer projelerinizi etkilemez.

Python 3.3 sürümünden bu yana standart kütüphanenin bir parçası olarak sunulan venv modülü, ek bir üçüncü taraf araca ihtiyaç duymadan doğrudan kullanılabilen en pratik çözümdür.

Kurulum Öncesi Hazırlık ve Gereksinimler

Sanal ortam oluşturmaya başlamadan önce sisteminizde Python 3’ün kurulu olduğundan emin olmanız gerekir. Terminal veya komut istemcisini açarak aşağıdaki komutla mevcut Python sürümünü kontrol edebilirsiniz:

python --version

Bazı Linux ve macOS dağıtımlarında varsayılan Python ikilisi python3 olarak adlandırılır. Eğer yukarıdaki komut hata verirse şu komutu deneyin:

python3 --version

Ubuntu ve Debian tabanlı Linux dağıtımlarında venv modülü varsayılan Python paketiyle birlikte kurulmayabilir. Bu durumda terminalden ilgili paketi elle kurmanız gerekir:

sudo apt update
sudo apt install python3-venv

Adım Adım Sanal Ortam Oluşturma

Sanal ortam, projenizin bulunduğu dizin içinde oluşturulur. İlk olarak üzerinde çalışacağınız proje klasörünü oluşturun ve içine girin:

mkdir proje_klasorum
cd proje_klasorum

Artık venv modülünü çalıştırarak sanal ortamı oluşturabilirsiniz. Komutun genel yapısı python -m venv <ortam_adi> şeklindedir. Yaygın kullanımda ortam adı olarak venv, .venv veya env tercih edilir:

python3 -m venv .venv

Bu komut çalıştığında, belirtilen isimde bir dizin oluşturulur. Bu dizin içinde şu bileşenler yer alır:

  • pyvenv.cfg: Ortamın yapılandırma ayarlarını ve ana Python yolunu tutan dosya.
  • bin (Windows üzerinde Scripts): Python çalıştırıcısının kopyası ve ortamı yöneten betikler.
  • lib: Ortama yüklenecek üçüncü taraf paketlerin saklandığı dizin.
  • include: C uzantılı Python paketlerini derlemek için gerekli başlık dosyaları.

Sanal Ortamı Aktif Etme

Ortam dizinini oluşturmak ortamın hemen kullanılmaya başlandığı anlamına gelmez. Terminal oturumunuza bu ortamı kullanmasını bildirmeniz, yani ortamı aktif etmeniz gerekir. Aktif etme komutu kullandığınız işletim sistemine ve kabuk (shell) türüne göre değişiklik gösterir.

macOS ve Linux Üzerinde Aktifleştirme

Bash veya Zsh terminalinde ortamı aktif etmek için source komutu kullanılır:

source .venv/bin/activate

Windows Üzerinde Aktifleştirme

Windows Komut İstemi (Command Prompt) kullanıyorsanız:

.venvScriptsactivate.bat

Windows PowerShell kullanıyorsanız:

.venvScriptsActivate.ps1

PowerShell üzerinde bu betiği çalıştırırken betik çalıştırma ilkesi (ExecutionPolicy) hatası alırsanız, yetkilendirmeyi geçerli kullanıcı oturumu için geçici olarak açmanız gerekir:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Ortam başarıyla aktif edildiğinde, terminal satırınızın en başında parantez içinde ortamın adı görünür:

(.venv) kullanici@bilgisayar:~/proje_klasorum$

Bu ifadeyi gördüğünüzde, çalıştıracağınız tüm Python ve pip komutlarının yalnızca bu ortama etki edeceğinden emin olabilirsiniz. Ortamın doğruluğunu teyit etmek için hangi çalıştırıcının kullanıldığını sorgulayabilirsiniz:

which python

Windows için:

where python

Çıktı, projenizin içindeki .venv dizinini işaret etmelidir.

Paket Yönetimi ve Bağımlılıkların Kaydedilmesi

Sanal ortam aktifken pip aracılığıyla yüklediğiniz her kütüphane bu ortama yazılır. Örneğin, HTTP istekleri yapmak için popüler bir kütüphane olan requests paketini kuralım:

pip install requests

Yüklenen paketleri ve bunların bağlı olduğu alt paketleri görmek için:

pip list

Projenizi başka bir bilgisayara taşırken veya bir ekip arkadaşınızla paylaşırken sanal ortam klasörünün kendisini kopyalamamalısınız; çünkü bu klasör işletim sistemine ve dosya yollarına bağımlıdır. Bunun yerine bağımlılıkları metin formatında dışa aktarmanız gerekir:

pip freeze > requirements.txt

Bu komut, aktif ortamdaki tüm paketlerin isimlerini ve kesin sürümlerini requirements.txt adlı bir dosyaya kaydeder. Projeyi devralan başka biri, kendi sanal ortamını oluşturup aktif ettikten sonra aynı kütüphaneleri tek bir komutla kurabilir:

pip install -r requirements.txt

Sanal Ortamdan Çıkış Yapma ve Ortamı Silme

Projenizle işiniz bittiğinde veya başka bir projeye geçmek istediğinizde sanal ortamı kapatmanız gerekir. Bunun için terminale şu komutu yazmanız yeterlidir:

deactivate

Bu işlemden sonra terminal satırınızın başındaki (.venv) ifadesi kaybolur ve sisteminiz genel Python ortamına geri döner.

Eğer sanal ortamı tamamen kaldırmak isterseniz, ortamı pasif hale getirdikten sonra oluşturduğunuz klasörü işletim sisteminin dosya silme komutlarıyla silebilirsiniz:

rm -rf .venv

Windows üzerinde:

rmdir /s /q .venv

En İyi Uygulamalar ve Güvenlik Tavsiyeleri

Sanal ortamları yönetirken dikkat etmeniz gereken bazı önemli noktalar şunlardır:

  • Git deponuza asla sanal ortam dizinini eklemeyin. Projenizin kök dizininde bulunan .gitignore dosyasına .venv/ veya venv/ satırını ekleyin.
  • Her yeni proje için istisnasız yeni bir sanal ortam oluşturun. Birden fazla projeyi tek bir sanal ortamda birleştirmeyin.
  • Bağımlılıklarınızı düzenli olarak requirements.txt dosyasına aktararak sürüm geçmişinizi güvende tutun.
  • Ortam içindeki pip aracını güncel tutarak bilinen güvenlik açıklarına karşı önlem alın:
python -m pip install --upgrade pip

Özet ve Sonraki Adımlar

Python projelerinde yalıtım sağlamak; sürüm karmaşalarını engellemek, sistem kararlılığını korumak ve güvenli bir geliştirme süreci yürütmek için zorunludur. Dahili venv modülü, harici bir araç gerekmeden dakikalar içinde izole ortamlar oluşturmanızı sağlar.

Bir sonraki adım olarak, projelerinizde bağımlılık yönetimini daha gelişmiş hale getirmek için poetry veya pipenv gibi modern paket yöneticilerini inceleyebilir, bağımlılıkların kilitlenmesi (lock file) mekanizmalarını öğrenebilirsiniz.

#pip#python#python venv#sanal ortam#yazılım geliştirme

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.

Kommentar schreiben

Kommentare werden nach Freigabe durch den Admin veröffentlicht.