Python venv'yi Nasıl Etkinleştirilir (Yeni Başlayanlar İçin Kılavuz)

Python geliştiriciliğinde bağımlılık yönetimi önemlidir. Farklı projeler için farklı kütüphane sürümleri gerektiren çakışmaları önlemek için sanal ortamlar kullanılır.

Efe Demir

Efe Demir

5 June 2025

Python venv'yi Nasıl Etkinleştirilir (Yeni Başlayanlar İçin Kılavuz)

Python geliştirme dünyasının dinamik yapısında, bağımlılıkları ve proje ortamlarını yönetmek, akıl sağlığı ve başarı için çok önemlidir. İki farklı proje üzerinde çalıştığınızı düşünün: biri requests gibi popüler bir kütüphanenin eski bir sürümünü gerektirirken, diğeri en son özelliklere ihtiyaç duyuyor. Her ikisini de sistem genelinde kurmak kaçınılmaz olarak çakışmalara, bozulmalara ve hayal kırıklığına yol açacaktır. İşte tam da Python sanal ortamlarının çözmek için tasarlandığı sorun budur.

Bu eğitim, özellikle yerleşik venv modülünü kullanarak etkinleştirme sürecine odaklanarak, Python sanal ortamlarının temelleri konusunda size rehberlik edecektir. Neden gerekli olduklarını, nasıl oluşturulduklarını ve en önemlisi, bunları farklı işletim sistemleri ve kabuklarda etkinleştirmek için adım adım komutları ele alacağız.

💡
Güzel API Dokümantasyonu oluşturan harika bir API Test aracı mı istiyorsunuz?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
button

Sanal Ortam Tam Olarak Nedir? (Ve Neden Kesinlikle İhtiyacınız Var)

Temel olarak, bir Python sanal ortamı, belirli bir Python kurulumu ve bir dizi ek paket içeren yalıtılmış bir dizin ağacıdır. Bunu Python projeniz için kendi kendine yeten bir balon olarak düşünün.

Temel Kavramlar:

  1. Yalıtım: Bir sanal ortam oluşturup etkinleştirdiğinizde, yüklediğiniz tüm paketler (pip install ...) genel Python kurulumunuza değil, o ortamın dizinine yerleştirilir. Bu, farklı bağımlılık gereksinimlerine sahip projeler arasında çakışmaları önler. A Projesi requests==2.20.0 kullanabilirken, B Projesi birbirine veya sisteminizin temel Python kurulumuna müdahale etmeden requests==2.31.0 kullanabilir.
  2. Bağımlılık Yönetimi: Sanal ortamlar, proje bağımlılıklarını açık ve tekrarlanabilir hale getirir. Bir ortamda yüklü olan tüm paketlerin (ve bunların belirli sürümlerinin) bir listesini oluşturabilirsiniz (genellikle pip freeze > requirements.txt kullanarak). Bu dosya daha sonra işbirliği yapanlarla paylaşılabilir veya aynı ortamı başka bir yerde yeniden oluşturmak için dağıtım hatlarında kullanılabilir (pip install -r requirements.txt).
  3. Sürüm Kontrolü: venv'nin kendisiyle (genellikle oluşturulduğu Python sürümünü kullanır) daha az yaygın olsa da, kavram, bir projeyi oluşturma sırasında sisteminizde bulunan belirli bir Python yorumlayıcı sürümüne bağlamanıza olanak tanır. Daha gelişmiş araçlar, daha katı Python sürüm yönetimi için bunun üzerine kurulur.
  4. Temizlik: Genel Python kurulumunuzu düzenli tutar. Yalnızca temel, genel olarak gerekli araçlar (pip'in kendisi, venv, belki de bunları genel olarak tercih ediyorsanız linters veya formatlayıcılar gibi) ana site-packages dizininde bulunur. Projeye özgü dağınıklık, projenin sanal ortamında kalır.

Çözülen Sorun:

Sanal ortamlar olmadan bu senaryoyu düşünün:

Sanal ortamlarla:

Her iki proje de, gerekli sürümlerde CoolLib'in kendi yalıtılmış kopyalarını kullanarak mükemmel bir şekilde çalışır.

venv ile Tanışın: Python'un Yerleşik Çözümü

Python 3.3'ten beri, venv modülü standart kitaplığa dahil edilmiştir ve bu da onu hafif sanal ortamlar oluşturmanın önerilen yolu haline getirir. venv'den önce, virtualenv paketi gidilecek üçüncü taraf çözümdü (ve hala bazı ek özellikler sunuyor), ancak çoğu yaygın kullanım durumu için venv yeterlidir ve kolayca kullanılabilir.

Adım 1: Sanal Ortamınızı Oluşturma

Bir ortamı etkinleştirmeden önce, bir tane oluşturmanız gerekir. Bu, -m bayrağı aracılığıyla yürütülen venv modülü kullanılarak, istediğiniz Python yorumlayıcınızla yapılır.

Terminalinizi veya komut isteminizi açın, projenizin kök dizinine gidin ve aşağıdaki komutu çalıştırın:

# Linux/macOS için
python3 -m venv <environment_name>

# Windows için (genellikle sadece 'python' işe yarar)
python -m venv <environment_name>

Açıklama:

Örnek adımız olarak .venv kullanalım:

# Linux/macOS
python3 -m venv .venv

# Windows
python -m venv .venv

Bu komutu çalıştırdıktan sonra, proje klasörünüzde .venv (veya seçtiğiniz herhangi bir ad) adlı yeni bir dizin göreceksiniz.

Sanal Ortam Dizininde:

.venv dizininin içine bakarsanız, buna benzer bir yapı bulacaksınız (ayrıntılar İşletim Sistemine göre biraz farklılık gösterir):

Adım 2: Sanal Ortamı Etkinleştirme (Ana Olay!)

Ortamı oluşturmak yapıyı ayarlar, ancak etkinleştirmek, geçerli kabuk oturumunuzu varsayılan olarak o ortamın Python yorumlayıcısını ve paketlerini kullanacak şekilde değiştirir. Etkinleştirme, temel olarak ortamın komut dosyası dizinini (.venv/bin veya .venv/Scripts) kabuğunuzun PATH ortam değişkenine ekler.

Tam etkinleştirme komutu, İşletim Sisteminiz ve kullandığınız Kabuk'a bağlıdır.

A. Windows:

Komut İstemi (cmd.exe):

.venv\Scripts\activate.bat

PowerShell:

.venv\Scripts\Activate.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

İlkeleri değiştirmek için PowerShell'i Yönetici olarak çalıştırmanız gerekebilir. Yürütme ilkeleriyle ilgili ayrıntılar için PowerShell belgelerine bakın. Genellikle, ilke izin veriyorsa, yalnızca .venv\Scripts\Activate.ps1'i doğrudan çalıştırmak işe yarar.

Git Bash (veya Windows'daki diğer Bash benzeri kabuklar):

source .venv/Scripts/activate

(İleri eğik çizgileri ve dosya uzantısının olmamasına dikkat edin).

B. macOS / Linux:

Bash veya Zsh (Yaygın varsayılanlar):

source .venv/bin/activate

Fish Shell:

source .venv/bin/activate.fish

Csh veya Tcsh:

source .venv/bin/activate.csh

Etkinleştirildiğini Nasıl Anlarsınız?

Sanal ortamı başarıyla etkinleştirdiğinizin en acil işareti, kabuk isteminizdeki bir değişikliktir. Ortamın adı (örneğin, (.venv)) genellikle istem satırının başında görünür:

# Etkinleştirmeden önce (örnek)
user@hostname:~/my_project$

# Etkinleştirdikten sonra (örnek)
(.venv) user@hostname:~/my_project$

Bu önek, kabuk oturumunuzun şu anda belirtilen sanal ortam içinde çalıştığını anında söyler. Artık çalıştırdığınız herhangi bir python veya pip komutu, içindeki yürütülebilir dosyaları ve paketleri kullanacaktır .venv.

Bunu doğrulayabilirsiniz:

# Hangi Python yürütülebilir dosyasının kullanıldığını kontrol edin
which python  # Linux/macOS
where python # Windows (cmd/powershell)

# Hangi pip'in kullanıldığını kontrol edin
which pip # Linux/macOS
where pip # Windows (cmd/powershell)

Çıktı, .venv dizininizdeki yolları göstermelidir.

Adım 3: Etkinleştirilmiş Ortam İçinde Çalışma

Ortam etkinleştirildikten sonra, artık şunları yapabilirsiniz:

(.venv) $ pip install requests
(.venv) $ pip install flask pandas numpy
(.venv) $ pip list
(.venv) $ pip freeze

(pip freeze, requirements.txt için uygun çıktı verir).

(.venv) $ python my_script.py

Adım 4: Sanal Ortamı Devre Dışı Bırakma

Projeniz üzerinde sanal ortam içinde çalışmayı bitirdiğinizde, kabuk oturumunuzu normal duruma döndürmek için onu devre dışı bırakabilir, sisteminizin varsayılan Python kurulumunu kullanabilirsiniz.

Sadece şu komutu çalıştırın:

(.venv) $ deactivate

Bu komut, ortam etkinleştirildikten sonra yukarıda belirtilen tüm kabuklar ve işletim sistemlerinde evrensel olarak çalışır.

deactivate'i çalıştırdıktan sonra şunları fark edeceksiniz:

  1. (.venv) öneki kabuk isteminizden kaybolur.
  2. which python/where python'u çalıştırmak artık genel Python yorumlayıcınıza geri dönecektir.

En İyi Uygulamalar Özeti

# .gitignore
.venv/
# Oluşturmak/güncellemek için
(.venv) $ pip freeze > requirements.txt

# Yeni bir ortamda dosyadan yüklemek için
(.venv) $ pip install -r requirements.txt

Yaygın Etkinleştirme Sorunlarını Giderme

Sonuç

Bir Python sanal ortamını etkinleştirmek, herhangi bir Python geliştiricisi için temel bir beceridir. Etkili bağımlılık yönetimi, proje yalıtımı ve tekrarlanabilir derlemelere açılan kapıdır. Tam komut, İşletim Sisteminize ve kabuğunuza bağlı olarak biraz farklılık gösterse de, temel süreç, projenize gitmeyi, uygun etkinleştirme komut dosyasını (genellikle .venv/bin/ veya .venv/Scripts/ içinde bulunur) çalıştırmayı ve değiştirilmiş kabuk istemi aracılığıyla etkinleştirmeyi onaylamayı içerir. Bir kez ustalaştıktan sonra, venv kullanmak ikinci doğa haline gelir ve daha temiz, daha güvenilir ve çakışmasız Python geliştirme iş akışlarını sağlar. Başladığınız her yeni Python projesi için bunu bir alışkanlık haline getirin!

💡
Güzel API Dokümantasyonu oluşturan harika bir API Test aracı mı istiyorsunuz?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'in yerini çok daha uygun bir fiyata alıyor!
button

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin