Ortam Değişkenleri¶
🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri
Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝
Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖
Yapay zekâ LLM'ini daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.
İpucu
"Ortam değişkenleri"nin ne olduğunu ve nasıl kullanılacağını zaten biliyorsanız, bu bölümü atlayabilirsiniz.
Ortam değişkeni (genelde "env var" olarak da anılır), Python kodunun dışında, işletim sistemi seviyesinde bulunan ve Python kodunuz (veya diğer programlar) tarafından okunabilen bir değişkendir.
Ortam değişkenleri; uygulama ayarlarını yönetmek, Python’un kurulumunun bir parçası olarak konfigürasyon yapmak vb. durumlarda işe yarar.
Env Var Oluşturma ve Kullanma¶
Python’a ihtiyaç duymadan, shell (terminal) içinde ortam değişkenleri oluşturabilir ve kullanabilirsiniz:
// MY_NAME adlı bir env var'ı şöyle oluşturabilirsiniz
$ export MY_NAME="Wade Wilson"
// Sonra bunu diğer programlarla şöyle kullanabilirsiniz
$ echo "Hello $MY_NAME"
Hello Wade Wilson
// MY_NAME adlı bir env var oluşturun
$ $Env:MY_NAME = "Wade Wilson"
// Bunu diğer programlarla şöyle kullanın
$ echo "Hello $Env:MY_NAME"
Hello Wade Wilson
Python’da Env Var Okuma¶
Ortam değişkenlerini Python’un dışında (terminalde veya başka bir yöntemle) oluşturup daha sonra Python’da okuyabilirsiniz.
Örneğin main.py adında bir dosyanız şöyle olabilir:
import os
name = os.getenv("MY_NAME", "World")
print(f"Hello {name} from Python")
İpucu
os.getenv() fonksiyonunun ikinci argümanı, bulunamadığında döndürülecek varsayılan (default) değerdir.
Verilmezse varsayılan olarak None olur; burada varsayılan değer olarak "World" verdik.
Sonrasında bu Python programını çalıştırabilirsiniz:
// Burada env var'ı henüz ayarlamıyoruz
$ python main.py
// Env var'ı ayarlamadığımız için varsayılan değeri alırız
Hello World from Python
// Ama önce bir ortam değişkeni oluşturursak
$ export MY_NAME="Wade Wilson"
// Sonra programı tekrar çağırırsak
$ python main.py
// Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python
// Burada env var'ı henüz ayarlamıyoruz
$ python main.py
// Env var'ı ayarlamadığımız için varsayılan değeri alırız
Hello World from Python
// Ama önce bir ortam değişkeni oluşturursak
$ $Env:MY_NAME = "Wade Wilson"
// Sonra programı tekrar çağırırsak
$ python main.py
// Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python
Ortam değişkenleri kodun dışında ayarlanabildiği, ama kod tarafından okunabildiği ve dosyalarla birlikte saklanmasının (ör. git’e commit edilmesinin) gerekmediği için, konfigürasyon veya ayarlar için sıkça kullanılır.
Ayrıca, bir ortam değişkenini yalnızca belirli bir program çalıştırımı için oluşturabilirsiniz; bu değişken sadece o program tarafından, sadece o çalıştırma süresince kullanılabilir.
Bunu yapmak için, program komutunun hemen öncesinde ve aynı satırda tanımlayın:
// Bu program çağrısı için aynı satırda MY_NAME adlı bir env var oluşturun
$ MY_NAME="Wade Wilson" python main.py
// Artık ortam değişkenini okuyabilir
Hello Wade Wilson from Python
// Sonrasında env var artık mevcut değildir
$ python main.py
Hello World from Python
İpucu
Bu konuyla ilgili daha fazlasını Twelve-Factor Uygulaması: Config bölümünde okuyabilirsiniz.
Türler ve Doğrulama¶
Bu ortam değişkenleri yalnızca metin string’lerini taşıyabilir. Çünkü Python’un dışındadırlar ve diğer programlarla, sistemin geri kalanıyla (hatta Linux, Windows, macOS gibi farklı işletim sistemleriyle) uyumlu olmak zorundadırlar.
Bu, Python’da bir ortam değişkeninden okunan her değerin str olacağı anlamına gelir. Farklı bir tipe dönüştürme veya doğrulama işlemleri kod içinde yapılmalıdır.
Uygulama ayarlarını yönetmek için ortam değişkenlerini kullanmayı, İleri Seviye Kullanıcı Rehberi - Ayarlar ve Ortam Değişkenleri bölümünde daha detaylı öğreneceksiniz.
PATH Ortam Değişkeni¶
İşletim sistemlerinin (Linux, macOS, Windows) çalıştırılacak programları bulmak için kullandığı özel bir ortam değişkeni vardır: PATH.
PATH değişkeninin değeri uzun bir string’dir; Linux ve macOS’te dizinler iki nokta üst üste : ile, Windows’ta ise noktalı virgül ; ile ayrılır.
Örneğin PATH ortam değişkeni şöyle görünebilir:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Bu, sistemin şu dizinlerde program araması gerektiği anlamına gelir:
/usr/local/bin/usr/bin/bin/usr/sbin/sbin
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32
Bu, sistemin şu dizinlerde program araması gerektiği anlamına gelir:
C:\Program Files\Python312\ScriptsC:\Program Files\Python312C:\Windows\System32
Terminalde bir komut yazdığınızda, işletim sistemi PATH ortam değişkeninde listelenen bu dizinlerin her birinde programı arar.
Örneğin terminalde python yazdığınızda, işletim sistemi bu listedeki ilk dizinde python adlı bir program arar.
Bulursa onu kullanır. Bulamazsa diğer dizinlerde aramaya devam eder.
Python Kurulumu ve PATH’in Güncellenmesi¶
Python’u kurarken, PATH ortam değişkenini güncellemek isteyip istemediğiniz sorulabilir.
Diyelim ki Python’u kurdunuz ve /opt/custompython/bin dizinine yüklendi.
PATH ortam değişkenini güncellemeyi seçerseniz, kurulum aracı /opt/custompython/bin yolunu PATH ortam değişkenine ekler.
Şöyle görünebilir:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/custompython/bin
Böylece terminalde python yazdığınızda, sistem /opt/custompython/bin (son dizin) içindeki Python programını bulur ve onu kullanır.
Diyelim ki Python’u kurdunuz ve C:\opt\custompython\bin dizinine yüklendi.
PATH ortam değişkenini güncellemeyi seçerseniz, kurulum aracı C:\opt\custompython\bin yolunu PATH ortam değişkenine ekler.
C:\Program Files\Python312\Scripts;C:\Program Files\Python312;C:\Windows\System32;C:\opt\custompython\bin
Böylece terminalde python yazdığınızda, sistem C:\opt\custompython\bin (son dizin) içindeki Python programını bulur ve onu kullanır.
Yani şunu yazarsanız:
$ python
Sistem python programını /opt/custompython/bin içinde bulur ve çalıştırır.
Bu, kabaca şunu yazmaya denktir:
$ /opt/custompython/bin/python
Sistem python programını C:\opt\custompython\bin\python içinde bulur ve çalıştırır.
Bu, kabaca şunu yazmaya denktir:
$ C:\opt\custompython\bin\python
Bu bilgiler, Sanal Ortamlar konusunu öğrenirken işinize yarayacak.
Sonuç¶
Buraya kadar ortam değişkenlerinin ne olduğuna ve Python’da nasıl kullanılacağına dair temel bir fikir edinmiş olmalısınız.
Ayrıca Ortam Değişkeni için Wikipedia sayfasından daha fazlasını da okuyabilirsiniz.
Çoğu zaman ortam değişkenlerinin hemen nasıl işe yarayacağı ilk bakışta çok net olmayabilir. Ancak geliştirme yaparken birçok farklı senaryoda tekrar tekrar karşınıza çıkarlar; bu yüzden bunları bilmek faydalıdır.
Örneğin bir sonraki bölümde, Sanal Ortamlar konusunda bu bilgilere ihtiyaç duyacaksınız.