Proje Yapısı ve pyproject.toml
Bir paketin düzenini oluşturun
Proje Yapısı ve pyproject.toml, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.
Kodunuzu Neden Paketlemelisiniz
Bir betik makinenizde yaşar; bir paket ise pip install komutuna sahip herkes tarafından kurulabilir. Paketleme, bir kod klasörünü dağıtılabilir, sürümlenmiş ve yeniden kullanılabilir bir birime dönüştürür.
İlk adım, düzenli bir proje yerleşimi ve bir yapılandırma dosyası oluşturmaktır.
src Düzeni
Önerilen yapı, içe aktarılabilir kodunuzu bir src/ klasörünün altına yerleştirir:
src/mypackage/__init__.pysrc/mypackage/core.pypyproject.tomlREADME.mdvetests/
src düzeni, kurulu kopya yerine kodunuzu yanlışlıkla proje kökünden içe aktarmanızı önler.
__init__.py Dosyası
__init__.py, bir klasörü içe aktarılabilir paket olarak işaretler ve paket ilk kez içe aktarıldığında çalışır. Ayrıca önemli adları içe aktararak herkese açık programlama arayüzünü kullanıma sunduğunuz yerdir.
Boş bir __init__.py dosyası bile paket oluşturmak için yeterlidir.
package_dir = 'src/mypackage'
files = ['__init__.py', 'core.py', 'utils.py']
for f in files:
print(package_dir + '/' + f)
print('Importable as:', 'mypackage')pyproject.toml Nedir
pyproject.toml, modern Python paketleme işlemleri için tek ve standart yapılandırma dosyasıdır (PEP 518/621). Çoğu projede eski setup.py dosyasının yerini alır ve derleme araçları tarafından okunur.
TOML biçimini kullanır: köşeli parantez içindeki bölümler ve anahtar = değer satırları.
build-system Tablosu
[build-system] tablosu, araçlara paketinizi nasıl derleyeceklerini bildirir. Yaygın bir seçim şudur:
requires = ['setuptools', 'wheel']build-backend = 'setuptools.build_meta'
Diğer derleme arka uçları arasında Hatchling ve Flit de bulunur; temel fikir aynıdır.
project Tablosu
[project] tablosu; name, version, description, authors, readme, requires-python ve dependencies gibi üst verileri içerir. Kullanıcıların PyPI üzerinde gördüğü bilgiler bunlardır.
Bunu paketinizin kimlik kartı olarak düşünebilirsiniz.
project = {
'name': 'mytool',
'version': '0.1.0',
'requires-python': '>=3.9',
'dependencies': ['requests>=2.0'],
}
for k, v in project.items():
print(k, '=', v)Adlandırma Kuralları
Paket adı PyPI üzerinde benzersiz olmalı ve normalleştirme kurallarına uymalıdır: büyük-küçük harf ayrımı yoktur; tireler ve alt çizgiler aynı kabul edilir. Yükleme sırasında çakışma yaşamamak için bir ada karar vermeden önce kullanılabilirliğini kontrol edin.
name = 'My_Cool.Tool'
normalized = name.lower().replace('_', '-').replace('.', '-')
print('PyPI normalized name:', normalized)Bağımlılıkları Bildirme
Çalışma zamanı bağımlılıklarını, 'requests>=2.28,<3' gibi sürüm kısıtlarıyla dependencies altında listeleyin. İsteğe bağlı ekleri [project.optional-dependencies] altında tanımlayın; bunlar pip install mytool[dev] ile kurulabilir.
Pakетinizin diğer paketlerle birlikte çalışabilmesi için kısıtları güvenli olduğu ölçüde gevşek tutun.
Giriş Noktaları
Bir komut satırı aracı dağıtmak için [project.scripts] altına mytool = 'mypackage.cli:main' gibi bir giriş ekleyin. Kurulumdan sonra mytool yazmak bu işlevi çalıştırır. black veya pytest gibi komut satırı arayüzleri komutlarını bu şekilde kullanıma sunar.
Kod Dışı Dosyaları Dahil Etme
Veri dosyaları (şablonlar, JSON) otomatik olarak dahil edilmez. Dosyaların wheel paketi içinde dağıtılması için paket verilerini derleme arka ucunuzda yapılandırın. Bunu unutmak, yerelde çalışıp kurulduğunda bozulan hataların yaygın bir nedenidir.
Geliştirme İçin Düzenlenebilir Kurulumlar
Geliştirme sırasında paketinizi pip install -e . ile düzenlenebilir kipte kurun. Kaynak koddaki değişiklikler yeniden kurulum gerektirmeden hemen etkili olur. Bunun için doğru bir pyproject.toml gerekir; bu da dosyayı erkenden yapılandırmak için başka bir nedendir.
Düzenlenebilir kurulumlar, bir paket üzerinde yinelemeli çalışırken en hızlı geri bildirim döngüsünü sağlar.
Hızlı Sınama
Proje yapısı bilginizi sınayın.
Özet
Bir paket yapısı oluşturdunuz:
- Paketleri işaretlemek için
__init__.pykullanarak src düzenini uygulayın pyproject.tomlstandart yapılandırmadır:[build-system]ve[project]name,version,requires-pythonvedependenciesdeğerlerini bildirin- Komut satırı arayüzleri için
[project.scripts]giriş noktaları ekleyin ve paket verilerini yapılandırın
Sıkça Sorulan Sorular
“Proje Yapısı ve pyproject.toml” dersi ücretsiz mi?
Evet — “Proje Yapısı ve pyproject.toml” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.
“Proje Yapısı ve pyproject.toml” dersinde ne öğreneceğim?
Bir paketin düzenini oluşturun Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Python Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Proje Yapısı ve pyproject.toml” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Proje Yapısı ve pyproject.toml
- build ile Derleme
- Sürümleme ve Üst Veriler
- twine ile Yayımlama