Otomasyon Ortamını Hazırlamak: Sanal Ortam ve Kütüphaneler
Hoş geldiniz! Bu kurs boyunca Python kullanarak dosyalarla, Excel tablolarıyla ve web sayfalarından alınan verilerle çalışan küçük otomasyon araçları yazacağız. İlk dersimizde, sonraki tüm derslerin üzerine kurulacağı temiz ve düzenli bir çalışma ortamı hazırlıyoruz.
Bu derste ne yapacağız?
Bu derste bilgisayarımızda proje bazlı, izole bir Python sanal ortamı (venv) oluşturacak ve bu ortama pip paket yöneticisi ile otomasyon çalışmalarında sık kullanacağımız üç kütüphaneyi kuracağız: openpyxl (Excel dosyalarıyla çalışmak için), requests (web sayfalarından veri indirmek için) ve beautifulsoup4 (indirilen HTML içeriğini ayrıştırmak için).
Ön koşul: Bilgisayarınızda Python'un kurulu olması gerekir (sürüm 3.9 veya üzeri önerilir). Python kurulu değilse, resmi Python web sitesinden işletim sisteminize uygun kurulum dosyasını indirip kurmanız yeterlidir. Kurulum ekranlarının görünümü sürüme ve işletim sistemine göre değişebilir; bu derste anlatılan adımlar genel mantığı yansıtır.
Kavram
Sanal ortam (virtual environment) kavramını bir mutfak benzetmesiyle düşünelim. Evinizin ana mutfağında her gün kullandığınız temel malzemeler var. Ama özel bir yemek denemesi yapacağınızda, o tarife özgü malzemeleri ayrı bir tezgahta hazırlamak isteyebilirsiniz; böylece ana mutfağınız karışmaz ve o tarifin malzemeleri başka bir yemeği etkilemez. Python'da her proje için ayrı bir sanal ortam oluşturmak da tam olarak buna benzer: Her projenin kendi kütüphane sürümleri, kendi "tezgahı" olur. Bir proje için openpyxl'in eski bir sürümünü, başka bir proje için yeni sürümünü kullanmak istediğinizde, sanal ortamlar sayesinde bu ikisi birbirine karışmaz.
pip ise Python'un paket yöneticisidir; yani kütüphaneleri internetten indirip bilgisayarınıza kuran araçtır. Bir nevi uygulama mağazası gibi düşünebilirsiniz: İhtiyacınız olan "eklentiyi" (kütüphaneyi) ismini yazarak indirirsiniz.
Kuracağımız üç kütüphanenin görevleri şöyledir:
- openpyxl: Excel (.xlsx) dosyalarını Python ile okumak, yazmak ve düzenlemek için kullanılır.
- requests: İnternetteki bir web sayfasının içeriğini Python koduyla indirmek için kullanılır.
- beautifulsoup4: İndirilen HTML kodunun içinden istediğimiz bilgiyi (örneğin bir başlığı veya fiyatı) ayıklamak için kullanılır.
Adım adım uygulama
- İşletim sisteminizde bir terminal (komut satırı) açın. Windows'ta Başlat menüsüne tıklayıp "PowerShell" yazarak Windows PowerShell uygulamasını açabilirsiniz. macOS'ta Terminal uygulamasını, Linux'ta dağıtımınızın terminal uygulamasını kullanabilirsiniz.
- Bu kurs boyunca kullanacağınız dosyaların duracağı bir proje klasörü oluşturun. Örneğin masaüstünüzde "otomasyon-kursu" adında bir klasör oluşturabilirsiniz. Terminalde şu komutları sırayla yazıp Enter tuşuna basın:
Birinci satır masaüstü klasörüne gider, ikinci satır "otomasyon-kursu" adında yeni bir klasör oluşturur, üçüncü satır o klasörün içine girer.cd Desktop mkdir otomasyon-kursu cd otomasyon-kursu - Python'un kurulu olup olmadığını ve sürümünü kontrol edin:
Ekranda "Python 3.x.x" gibi bir sürüm numarası görmelisiniz. Eğer bir hata alırsanız, Python kurulu değildir veya sistem yoluna (PATH) eklenmemiştir; bu durumda Python'u yeniden kurmanız ve kurulum sırasında "Add Python to PATH" seçeneğini işaretlemeniz gerekir.python --version - Proje klasörünüzün içinde bir sanal ortam oluşturun. Aşağıdaki komut, ".venv" adında bir klasör oluşturur ve içine izole bir Python kurulumu yerleştirir:
Buradapython -m venv .venv-m venvifadesi Python'a "venv" modülünü çalıştırmasını söyler;.venvise oluşturulacak klasörün adıdır. İşlem birkaç saniye sürebilir, tamamlandığında yeni bir çıktı görmeden komut satırına geri dönersiniz. - Oluşturduğunuz sanal ortamı etkinleştirin (aktif hale getirin). Windows PowerShell'de:
macOS veya Linux'ta:.venv\Scripts\Activate.ps1
Komut başarılı olduğunda, terminal satırının başında parantez içindesource .venv/bin/activate(.venv)yazdığını göreceksiniz. Bu, artık sanal ortamın aktif olduğunun işaretidir. - Not (Windows kullanıcıları için): Eğer PowerShell'de "bu sistemde betik çalıştırma devre dışı bırakılmıştır" gibi bir hata alırsanız, aşağıdaki komutu bir kez çalıştırıp ardından tekrar etkinleştirme komutunu deneyin:
Bu komut, yalnızca sizin kullanıcı hesabınız için PowerShell betiklerinin çalışmasına izin verir.Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned - Sanal ortam aktifken, pip'in güncel olduğundan emin olmak için şu komutu çalıştırın:
Bu komut pip'in kendisini en güncel sürüme yükseltir; eski bir pip sürümü bazen paket kurulumunda sorun çıkarabilir.python -m pip install --upgrade pip - Şimdi ihtiyacımız olan üç kütüphaneyi tek bir komutla kuralım:
Bu komut, boşlukla ayrılan her bir paket adını sırayla internetten indirip sanal ortamınıza kurar. İşlem tamamlandığında "Successfully installed ..." şeklinde bir onay mesajı görmelisiniz.pip install openpyxl requests beautifulsoup4 - Kurulumun doğru yapıldığını doğrulamak için şu komutu çalıştırın:
Bu komut, sanal ortamınızda kurulu tüm paketleri listeler. Listede openpyxl, requests ve beautifulsoup4 satırlarını görmelisiniz.pip list - Son olarak, projenizin bağımlılıklarını kaydeden bir dosya oluşturalım. Bu dosya, ileride aynı ortamı başka bir bilgisayarda tekrar kurmak istediğinizde işinize yarayacaktır:
Bu komut, kurulu tüm paketlerin adlarını ve sürümlerini "requirements.txt" adlı bir dosyaya yazar.pip freeze > requirements.txt
Sık karşılaşılan sorunlar
| Hata / Sorun | Olası neden ve çözüm |
|---|---|
| "python" komutu tanınmıyor | Python kurulu değil ya da PATH'e eklenmemiş. Python'u yeniden kurup kurulum ekranında "Add Python to PATH" kutucuğunu işaretleyin. |
| PowerShell'de Activate.ps1 çalıştırılamıyor, "execution of scripts is disabled" hatası | PowerShell'in betik çalıştırma politikası kısıtlı. Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned komutunu çalıştırıp tekrar deneyin. |
Terminalde (.venv) ibaresi görünmüyor | Sanal ortam etkinleştirilmemiş olabilir. Etkinleştirme komutunu doğru klasörden (proje klasörünün içinden) çalıştırdığınızdan emin olun. |
| pip install çok yavaş çalışıyor veya zaman aşımına uğruyor | İnternet bağlantınızı kontrol edin; bazı kurumsal ağlarda güvenlik duvarı paket indirmeyi engelleyebilir, farklı bir ağ deneyin. |
| Kurulum sonrası "pip list" komutunda paketler görünmüyor | Sanal ortam aktif değilken kurulum yapılmış olabilir. Önce (.venv) ibaresinin göründüğünden emin olun, sonra kurulum komutunu tekrar çalıştırın. |
Mini görev
Şimdi öğrendiklerinizi kendi başınıza uygulayın:
- Masaüstünüzde "otomasyon-kursu" adında bir klasör oluşturun (zaten oluşturduysanız bu adımı atlayabilirsiniz).
- Bu klasörün içinde
.venvadında bir sanal ortam oluşturun. - Sanal ortamı etkinleştirin ve terminalde
(.venv)ibaresinin göründüğünü doğrulayın. pip install openpyxl requests beautifulsoup4komutuyla üç kütüphaneyi kurun.pip listkomutuyla kurulumu doğrulayın.pip freeze > requirements.txtkomutuyla bağımlılık dosyanızı oluşturun.
Kontrol listesi:
- Proje klasörü oluşturuldu mu?
- Sanal ortam oluşturuldu ve etkinleştirildi mi? (Terminalde
(.venv)görünüyor mu?) - Üç kütüphane de
pip listçıktısında görünüyor mu? - "requirements.txt" dosyası proje klasöründe oluştu mu?
Kendini sına
- Sanal ortam (venv) kullanmanın temel amacı nedir?
- Sanal ortamı etkinleştirdiğinizde terminalde hangi işareti görürsünüz?
- Windows PowerShell'de sanal ortamı etkinleştirmek için hangi komut kullanılır?
- beautifulsoup4 kütüphanesi hangi amaçla kullanılır?
pip freeze > requirements.txtkomutu ne işe yarar?
Cevaplar
- Her projenin kendi kütüphane sürümlerini diğer projelerden izole bir şekilde yönetebilmesini sağlamak; böylece projeler arasında paket çakışması olmaz.
- Satırın başında parantez içinde
(.venv)ibaresi görünür. .venv\Scripts\Activate.ps1komutu kullanılır.- İndirilen HTML içeriğinin içinden istenen verileri (başlık, metin, bağlantı gibi) ayıklamak (ayrıştırmak) için kullanılır.
- Sanal ortamda kurulu tüm paketlerin adlarını ve sürüm numaralarını bir dosyaya kaydeder; bu dosya sayesinde aynı ortam başka bir bilgisayarda tekrar kurulabilir.
Bu dersi kayıt olmadan izleyebilirsin. İlerlemeni kaydetmek, sertifika almak ve puan tablosuna girmek için ücretsiz üye ol: Kayıt Ol