Python, geniş standart kütüphanesi sayesinde kutudan çıktığı haliyle son derece güçlü bir programlama dilidir. Ancak modern yazılım geliştirme süreçlerinde, veri analizinden web geliştirmeye, siber güvenlik otomasyonlarından makine öğrenimine kadar pek çok alanda topluluk tarafından geliştirilmiş harici kütüphanelere ihtiyaç duyulur. Bu kütüphanelerin sisteme dahil edilmesi, güncellenmesi ve yönetilmesi sürecinde devreye paket yöneticileri girer.
Python pip Nedir?
Açılımı yaygın olarak “Preferred Installer Program” şeklinde kabul edilen pip, Python için geliştirilmiş resmi paket yönetim sistemidir. Python 3.4 ve üzeri sürümlerle birlikte varsayılan olarak kurulu gelir. pip, Python Package Index (kısaca PyPI) adı verilen merkezi bir depoda barındırılan yüz binlerce açık kaynaklı kütüphaneye terminal üzerinden tek bir komutla erişmenizi, bunları indirip sisteminize veya sanal ortamınıza entegre etmenizi sağlar.
pip kullanmanın temel avantajları şunlardır:
- Harici kütüphaneleri kaynak koddan derlemek yerine önceden paketlenmiş formatlarda (wheel veya source distribution) saniyeler içinde kurar.
- Kurulmak istenen paketin ihtiyaç duyduğu alt bağımlılıkları otomatik olarak tespit eder ve sırasıyla yükler.
- Kurulu paketlerin sürümlerini kontrol etmeyi, eskiyen sürümleri güncellemeyi veya gereksiz paketleri sistemden temizlemeyi kolaylaştırır.
- requirements.txt gibi dosyalar yardımıyla projelerin farklı ortamlarda birebir aynı kütüphane sürümleriyle çalışmasını güvence altına alır.
pip Kurulumunu Kontrol Etme ve Güncelleme
Sisteminizde pip aracının bulunup bulunmadığını ve hangi sürümün yüklü olduğunu kontrol etmek için işletim sisteminizin komut satırını (Terminal, PowerShell veya CMD) açıp aşağıdaki komutu çalıştırabilirsiniz:
pip --version
Eğer sisteminizde birden fazla Python sürümü varsa ve komut doğrudan tanınmıyorsa, Python yorumlayıcısı üzerinden modül çağrısı yapmak daha sağlıklı bir yöntemdir:
python -m pip --version
Bu komut ekrana pip sürümünü, Python sürümünü ve pip aracının kurulu olduğu dosya yolunu yazdıracaktır. pip aracının kendisi de düzenli olarak güvenlik ve performans güncellemeleri alır. Paket yöneticinizi en güncel sürüme yükseltmek için şu komutu kullanabilirsiniz:
python -m pip install --upgrade pip
Python pip ile Paket Kurma
PyPI üzerinde yer alan herhangi bir paketi kurmak için en temel komut install ifadesidir.
Temel Paket Kurulumu
Örnek olarak web istekleri göndermek için sıkça kullanılan popüler requests kütüphanesini kurmak istediğinizi varsayalım:
pip install requests
Bu komut çalıştırıldığında pip sırasıyla şu adımları izler:
- PyPI sunucularına bağlanarak
requestspaketinin en son kararlı sürümünü arar. - Paketin ihtiyaç duyduğu urllib3, certifi, charset-normalizer gibi alt bağımlılıkları inceler.
- Gerekli tüm dosyaları indirir ve Python ortamınızın site-packages dizinine yerleştirir.
Belirli Bir Sürümü Kurma
Bazen projeleriniz geriye dönük uyumluluk veya güvenlik nedeniyle bir paketin en güncel sürümü yerine belirli bir sürümüne ihtiyaç duyabilir. İki adet eşittir (==) operatörü kullanarak sürüm sabitlemesi yapabilirsiniz:
pip install requests==2.31.0
Belirli bir sürümün üzerindeki veya altındaki paketleri sınırlandırmak için büyüktür ve küçüktür operatörleri de kullanılabilir:
pip install "requests>=2.28.0,<3.0.0"
Kurulu Paketleri Listeleme ve İnceleme
Geliştirme ortamınızda hangi paketlerin bulunduğunu ve bunların hangi sürümlerde olduğunu görmek için iki temel komut kullanılır.
Mevcut ortamda kurulu tüm üçüncü parti kütüphaneleri ve sürümlerini listelemek için:
pip list
Belirli bir paket hakkında daha fazla ayrıntıya (yazar, lisans, açıklama, dosya konumu ve bu paketin ihtiyaç duyduğu bağımlılıklar) ulaşmak için show komutu tercih edilir:
pip show requests
Bu komutun çıktısında yer alan “Requires” satırı paketin çalışmak için nelere ihtiyaç duyduğunu, “Required-by” satırı ise kurulu diğer hangi paketlerin bu kütüphaneye bağımlı olduğunu gösterir.
Paket Güncelleme ve Kaldırma
Projelerinizde kullandığınız kütüphaneleri zaman içinde yeni özelliklerden yararlanmak veya güvenlik açıklarını kapatmak amacıyla güncellemeniz gerekir.
Kurulu bir paketi en son sürüme yükseltmek için --upgrade bayrağı kullanılır:
pip install --upgrade requests
Artık ihtiyaç duymadığınız veya yanlışlıkla kurduğunuz bir paketi sistemden kaldırmak için uninstall komutu kullanılır:
pip uninstall requests
Bu işlem sırasında terminal sizden kaldırma işlemini onaylamanızı isteyecektir. Onay sürecini atlayarak doğrudan silmek isterseniz komutun sonuna -y parametresini ekleyebilirsiniz:
pip uninstall requests -y
Burada dikkat edilmesi gereken önemli bir nokta vardır: pip bir paketi kaldırdığında, o paketin kurulumu sırasında yüklenmiş olan alt bağımlılıkları otomatik olarak kaldırmaz. Çünkü bu bağımlılıklar başka paketler tarafından kullanılıyor olabilir.
requirements.txt ile Bağımlılık Yönetimi
Yazdığınız bir Python projesini başka bir geliştiriciye aktarırken ya da bir sunucuya dağıtırken (deployment), projenin ihtiyaç duyduğu tüm paketlerin eksiksiz kurulması gerekir. Python ekosisteminde bu standart, requirements.txt dosyası ile sağlanır.
Geliştirme yaptığınız ortamdaki tüm paket listesini ve tam sürümlerini bir dosyaya dökmek için freeze komutu çalıştırılır:
pip freeze > requirements.txt
Oluşan bu dosyanın içeriği aşağıdaki gibi görünecektir:
certifi==2023.11.17
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.1.0
Projeyi devralan başka bir kişi, kaynak kodu indirdikten sonra tek bir komutla tüm bu bağımlılıkları kendi sistemine kurabilir:
pip install -r requirements.txt
Sanal Ortamlar (venv) ile Birlikte pip Kullanımı
Paketleri doğrudan işletim sisteminin genel Python ortamına kurmak (global kurulum), farklı projelerin çakışan kütüphane sürümlerine ihtiyaç duyması durumunda sorunlara yol açar. Örneğin bir projeniz Django 3.2 sürümünü gerektirirken, bir diğeri Django 5.0 gerektirebilir.
Bu sorunu çözmek için her proje için bağımsız bir Python Sanal Ortamı (virtual environment) oluşturulmalıdır.
Sanal ortam oluşturma ve etkinleştirme adımları şu şekildedir:
python -m venv myenv
Windows üzerinde etkinleştirmek için:
myenvScriptsactivate
Linux veya macOS üzerinde etkinleştirmek için:
source myenv/bin/activate
Sanal ortam aktif edildikten sonra çalıştıracağınız her pip install komutu, paketleri yalnızca bu izole dizine kurar; sistem genelindeki Python kurulumunuz temiz kalır.
Özet ve Sonraki Adımlar
Python pip, modern Python programlamanın vazgeçilmez bir parçasıdır. Kütüphane kurulumundan bağımlılık kontrolüne kadar tüm süreçleri standart bir çatı altında toplar. Paket yönetimi mantığını kavramak, yazılım projelerinizi hem yerel makinenizde hem de sunucu ortamlarında tutarlı bir şekilde çalıştırmanızı sağlar.
Bir sonraki adım olarak, projelerinizde kütüphane çakışmalarını önlemek adına Python sanal ortamlarını (venv) iş akışınıza dahil edebilir; siber güvenlik bakış açısıyla kütüphanelerdeki bilinen güvenlik açıklarını denetlemek için pip-audit gibi güvenlik odaklı araçları inceleyebilirsiniz.


Comments
No comments yet. Write the first comment.