Python Modüllerini Kurmak
*************************

E-posta:
   distutils-sig@python.org

Popüler bir açık kaynak geliştirme projesi olarak Python,
yazılımlarını diğer Python geliştiricilerinin açık kaynak lisansı
koşulları altında kullanmasını sağlayan, katkıda bulunanlardan ve
kullanıcılardan oluşan aktif bir destekleyici topluluğa sahiptir.

Bu, Python kullanıcılarının etkin bir şekilde paylaşımda bulunmasına
ve işbirliği yapmasına, başkalarının yaygın (ve hatta bazen nadir!)
sorunlara yönelik oluşturduğu çözümlerden faydalanmasına ve potansiyel
olarak ortak havuza kendi çözümleriyle katkıda bulunmasına olanak
tanır.

This guide covers the installation part of the process. For a guide to
creating and sharing your own Python projects, refer to the Python
packaging user guide.

Not:

  Kurumsal kullanıcılar, birçok kuruluşun açık kaynak yazılımları
  kullanma ve bunlara katkıda bulunma konusunda kendi politikaları
  olduğunu unutmayın. Python ile sağlanan dağıtım ve kurulum
  araçlarını kullanırken lütfen bu tür politikaları dikkate alın.


Anahtar terimler
================

* "pip", tercih edilen yükleyici programıdır. Python 3.4'ten
  başlayarak, varsayılan olarak Python ikili yükleyicilerine dahil
  edilmiştir.

* *virtual environment*, paketlerin sistem genelinde kurulmak yerine
  belirli bir uygulama tarafından kullanılmak üzere kurulmasına izin
  veren yarı izole bir Python ortamıdır.

* "venv", sanal ortamlar oluşturmaya yönelik standart bir araçtır ve
  Python 3.3'ten beri Python'un bir parçasıdır. Python 3.4'ten
  başlayarak, "pip" 'in tüm oluşturulan sanal ortamlara yüklenmesi
  varsayılandır.

* "virtualenv", "venv" 'in üçüncü taraf alternatifidir (ve öncülüdür).
  "venv" 'i hiç sağlamayan veya oluşturulan ortamlara "pip" 'i
  otomatik olarak yükleyemeyen 3.4'ten önceki Python sürümlerinde
  sanal ortamların kullanılmasına izin verir.

* Python Package Index, diğer Python kullanıcılarının kullanımına
  sunulan, açık kaynaklı lisanslı paketlerin halka açık bir deposudur.

* Python Packaging Authority, standart paketleme araçlarının ve
  ilişkili meta veri ve dosya biçimi standartlarının bakımından ve
  geliştirilmesinden sorumlu geliştiriciler ve belge yazarları
  grubudur. Hem GitHub hem de Bitbucket 'ta çeşitli araçlar,
  dokümantasyon ve sorun izleyicileri bulundururlar.

* "distutils", Python standart kitaplığına ilk olarak 1998 yılında
  eklenen orijinal oluşturma ve dağıtım sistemidir. "distutils" 'in
  doğrudan kullanımı aşamalı olarak kaldırılırken, mevcut paketleme ve
  dağıtım altyapısının temelini atmaya devam etmektedir, ve yalnızca
  standard kütüphanenin bir parçası olmakla kalmamakla birlikte adı
  başka şekillerde de yaşıyor (Python paketleme standartlarının
  geliştirilmesini koordine etmek için kullanılan posta listesinin adı
  gibi).

3.5 sürümünde değişti: Artık sanal ortamlar oluşturmak için "venv" 'in
kullanılması önerilir.

Ayrıca bakınız:

  Python Paketleme Kullanıcı Kılavuzu: Sanal ortamları oluşturma ve
  kullanma


Temel kullanım
==============

Standart paketleme araçlarının tümü, komut satırından kullanılmak
üzere tasarlanmıştır.

Aşağıdaki komut, bir modülün en son sürümünü ve bağımlılıklarını
Python Paket Dizininden yükleyecektir:

   python -m pip install SomePackage

Not:

  POSIX kullanıcıları için (macOS ve Linux kullanıcıları dahil), bu
  kılavuzdaki örneklerde bir *virtual environment* kullanıldığı
  varsayılmıştır.Windows kullanıcıları için bu kılavuzdaki örneklerde,
  Python yüklenirken sistem PATH ortam değişkenini ayarlama
  seçeneğinin seçildiği varsayılmaktadır.

Doğrudan komut satırında tam veya minimum bir sürüm belirtmek de
mümkündür. ">", "<" gibi karşılaştırma operatörleri veya kabuk
tarafından yorumlanan diğer bazı özel karakterler kullanılırken, paket
adı ve sürüm çift tırnak içine alınmalıdır:

   python -m pip install SomePackage==1.0.4    # specific version
   python -m pip install "SomePackage>=1.0.4"  # minimum version

Normalde, uygun bir modül zaten kuruluysa, onu tekrar kurmayı
denemenin bir etkisi olmaz. Mevcut modüllerin yükseltilmesi açıkça
talep edilmelidir:

   python -m pip install --upgrade SomePackage

"pip" ve yapabilecekleri hakkında daha fazla bilgi ve kaynak Python
Paketleme Kullanıcı Kılavuzu 'nda bulunabilir.

Sanal ortamların oluşturulması, "venv" modülü aracılığıyla yapılır.
Paketleri aktif bir sanal ortama kurmak, yukarıda gösterilen komutları
kullanır.

Ayrıca bakınız:

  Python Paketleme Kullanıcı Kılavuzu: Python Dağıtma Paketlerini
  Kurma


Nasıl yapabilirim ...?
======================

Bunlar, bazı genel görevler için hızlı cevaplar veya bağlantılardır.


... "pip" 'i Python 3.4'ten önceki Python sürümlerinde kurmalı mı?
------------------------------------------------------------------

Python, "pip" 'i yalnızca Python 3.4 ile paketlemeye başladı. Önceki
sürümler için, "pip" 'in Python Paketleme Kullanıcı Kılavuzu'nda
açıklandığı gibi "önyüklenmesi" gerekir.

Ayrıca bakınız:

  Python Paketleme Kullanıcı Kılavuzu: Paketleri Kurmak için
  Gerekenler


... sadece mevcut kullanıcı için paketler kurabilirim?
------------------------------------------------------

"--user" seçeneğinin "python -m pip install" 'e geçirilmesi,  sistemin
tüm kullanıcıları yerine yalnızca geçerli kullanıcı için bir paket
yükleyecektir.


... bilimsel Python paketleri kurabilirim?
------------------------------------------

Bir dizi bilimsel Python paketinin karmaşık ikili bağımlılıkları
vardır ve şu anda doğrudan "pip" kullanılarak kurulumu kolay değildir.
Bu noktada, kullanıcıların bu paketleri "pip" ile kurmaya çalışmak
yerine başka yollar ile kurması genellikle daha kolay olacaktır.

Ayrıca bakınız:

  Python Paketleme Kullanıcı Kılavuzu: Bilimsel Paketler Kurma


... paralel olarak yüklenmiş birden çok Python sürümüyle çalışabilirim?
-----------------------------------------------------------------------

Linux, macOS ve diğer POSIX sistemlerinde, "pip" 'in uygun kopyasını
çalıştırmak için "-m" anahtarıyla birlikte sürümlü Python komutlarını
kullanın:

   python2   -m pip install SomePackage  # default Python 2
   python2.7 -m pip install SomePackage  # specifically Python 2.7
   python3   -m pip install SomePackage  # default Python 3
   python3.4 -m pip install SomePackage  # specifically Python 3.4

Uygun sürüme sahip "pip" komutları da mevcut olabilir.

Windows'ta, "py" Python başlatıcısını "-m" anahtarıyla birlikte
kullanın:

   py -2   -m pip install SomePackage  # default Python 2
   py -2.7 -m pip install SomePackage  # specifically Python 2.7
   py -3   -m pip install SomePackage  # default Python 3
   py -3.4 -m pip install SomePackage  # specifically Python 3.4


Genel yükleme sorunları
=======================


Python'u Linux'te sisteme kurmak
--------------------------------

Linux sistemlerinde, dağıtımın bir parçası olarak genellikle bir
Python kurulumu dahil edilir. Bu Python kurulumuna paket yüklemek,
sisteme root erişimi gerektirir ve bir bileşen beklenmedik bir şekilde
"pip" kullanılarak güncellenirse, sistem paketi yöneticisinin ve
sistemin diğer bileşenlerinin çalışmasına müdahale edebilir.

Bu tür sistemlerde, "pip" ile paketleri kurarken sanal ortam veya
kullanıcı başına kurulum kullanmak genellikle daha iyidir.


Pip yüklü değil
---------------

"pip" 'in varsayılan olarak yüklenmemesi mümkündür. Bir olası
düzeltme:

   python -m ensurepip --default-pip

pip'i yüklemek için ek kaynaklar da vardır.


İkili uzantıları yükleme
------------------------

Python tipik olarak büyük ölçüde kaynak tabanlı dağıtıma güvenmiştir
ve son kullanıcıların kurulum sürecinin bir parçası olarak uzantı
modüllerini kaynaktan derlemesi beklenir.

İkili "wheel" formatı için desteğin sunulması ve Python Paket Dizini
aracılığıyla en azından Windows ve macOS için wheel'lar
yayınlanabilmesi ile, kullanıcılar önceden oluşturulmuş uzantıları
kendileri inşa etmek yerine daha düzenli bir şekilde
yükleyebildiğinden bu sorunun zaman içinde azalması bekleniyor.

Bilimsel yazılımı yüklemek için önceden oluşturulmuş (pre-built)
"wheel" dosyaları olarak henüz mevcut olmayan çözümlerden bazıları,
diğer ikili uzantıları yerel olarak kurmaya gerek kalmadan edinmeye de
yardımcı olabilir.

Ayrıca bakınız: Python Paketleme Kullanıcı Kılavuzu: İkili Uzantılar
