Bu kılavuzun yardımıyla Python'da paketleri nasıl oluşturacağınızı, dağıtacağınızı ve kullanacağınızı öğrenin.
Tek bir Python dosyasıyla sınırlı kapsamlı bir uygulama geliştirmenin göz korkutucu görevini hayal edin. Teknik olarak mümkün olsa da, verimli, bakımı yapılabilir ve yeniden kullanılabilir yazılım oluşturmanın temel ilkelerine aykırıdır. Bu sebeplerden dolayı paketler ve modüller, yazılım oluşturmak ve geliştirmek için gereklidir.
Paket Nedir?
Python'da bir paket, mantıksal olarak ilişkili modülleri ve kaynakları birlikte düzenlemenin bir yolunu sunar. Birden fazla Python modülü, alt paket ve diğer kaynakları içeren bir dizindir.
Paketler, projenizin kodunu farklı soyutlama düzeylerinde düzenlemenize izin veren hiyerarşik bir yapı sağlar.
Paketler ve Modüller Arasındaki Fark
Hem paketleri hem de kodu düzenlemek için modüller, aralarında farklar var:
- Modül: Modül, Python kodunu tutan bir dosyadır. Kodunuzda içe aktarabileceğiniz ve kullanabileceğiniz işlevleri, sınıfları, değişkenleri ve diğer nesneleri tanımlar.
- paket: Bir paket, bir veya daha fazla modülden oluşan bir koleksiyondur ve alt paketleri de içerebilir.
Python'da Paket Nasıl Oluşturulur
Bir paket oluşturmak için bu belirtilen adımları izleyin.
1. Adım: Bir Proje Dizini Oluşturun
Bir proje dizini oluşturarak başlayın.
study_bud/
2. Adım: Bir Paket Dizini Oluşturun
Proje dizininizin içinde, paket dizini olarak hizmet verecek başka bir dizin oluşturun. Paketin amacını veya işlevselliğini temsil eden anlamlı bir ad verin. Paket dizini, paketinizle ilgili modülleri ve alt paketleri içerecektir.
study_bud/
math_tool/
Adım 3: Paket __init__.py Dosyasını Tanımlayın
Paket dizininde bir __ oluşturuninit__.py dosya. Varlığı __init__.py file, dizini Python'da bir paket yapan şeydir.
Paketi her kullandığınızda bir kodu başlatmanız gerekirse, onu __ içine ekleyin.init__.py dosya yoksa her zaman boştur.
study_bud/
math_tool/
__init__.py
4. Adım: Pakete Modüller Ekleyin
Paket dizinine işlevleri, sınıfları veya değişkenleri tanımlayan Python modülleri (.py) ekleyin.
Bu modüller, paketinizin işlevselliğini sağlayan asıl kodu içerir. Paket dizini içinde birden çok modül oluşturabilirsiniz.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
Adım 5: Pakete Alt Paketler Ekleyin
Paketinizin hiyerarşik bir yapıya sahip olması gerekiyorsa veya farklı işlevler içeriyorsa, paket dizini içinde alt paketler oluşturabilirsiniz.
Bir alt paket, ana paket dizini içindeki başka bir paket dizinidir. Her alt paketin kendi __init__.py dosya. Alt paketler, kodun daha fazla düzenlenmesine ve ayrılmasına izin verir.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
Bu adımlarda, bir matematik aracı paket, iki modül eklendi (operasyonlar.py Ve istatistik.py) ve iki alt paket geometri Ve hesap her birinin kendi modülü vardır.
Bu adımları izleyerek, bir paketi ve alt paketleri kullanarak ilgili işlevleri kolayca düzenleyebilir ve kodu yönetmeyi ve yeniden kullanmayı kolaylaştırabilirsiniz.
Python'da Bir Paketle Nasıl Çalışılır?
Bir paketle çalışmak için onu içe aktarmanız gerekir. bu içe aktarmak Ve itibaren anahtar kelimeler, kodunuzdaki bir paketi içe aktarmanıza ve kullanmanıza izin verir.
import math_tool # entire package
Bir paketten modülleri, alt paketleri veya belirli özellikleri içe aktarmak için nokta gösterimini de kullanabilirsiniz. Nokta gösterimi, paket dizini yapısında gezinmenizi sağlar. Nokta gösterimi, içe aktarmalarınızı daha okunabilir ve bakımı kolay hale getirir.
from math_tool.operations import add, multiply # specific functions
Yukarıdaki kodda, paket dizininden (matematik aracı) için operasyonlar nokta gösterimini kullanan modül ve iki işlevi içe aktardı (eklemek Ve çarpmak).
Mutlak İthalat vs. Bağıl İthalat
İle mutlakithalat, üst düzey paketten (kök paket) istenen modüle veya alt pakete giden tam yolu belirtirsiniz. Bu, Python'da modülleri ve paketleri içe aktarmanın en yaygın ve önerilen yoludur.
from math_tool.geometry.shapes import parallelogram
Den başlayarak matematik aracı içine gitmek geometri alt paketi bulun şekiller.py modülünü içe aktarın ve paralelkenar işlev.
Sırasında akrabaithalat göreli içe aktarmaları belirtmek için nokta gösterimini kullanarak geçerli modülün konumuna göre içe aktarmalar yapmanıza izin verir.
Örneğin, içindeki kalkülüs/entegrasyonlar.py modülden bir işlevi içe aktarmak için göreli içe aktarmayı kullanabilirsiniz. şekiller.py içindeki modül geometri alt paket.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Çift nokta ("..") Python'a şunu söyler:
- Alt paket dizininden başlayın (hesap) burada modül (entegrasyonlar.py) var.
- Ana pakete gidin (matematik aracı) alt paketin dizini.
- Bul geometri üst dizindeki alt paket.
- içine git şekiller.py modül ve içe aktarma eşkenar dörtgen ondan.
Dolayısıyla, nokta gösterimi, geçerli modül dizininden gidilecek dizin sayısını temsil eder.
Kolaylık için Takma Ad İthalatları
Bir içe aktarma işlemine takma ad atayarak kodunuzda başvurulmasını kolaylaştırabilirsiniz. Takma adlar, uzun paket veya modül adlarıyla uğraşırken kullanışlıdır.
Takma ad atamak için şunu kullanın: gibi anahtar kelime.
import math_tool.calculus as cal
Python'da Paketinizi Nasıl Dağıtabilirsiniz?
Python, paketinizi oluşturmanız ve dağıtmanız için size araçlar ve bir platform sağlar. Paketinizi dağıtmak, kodunuzu diğer geliştiricilerle paylaşmanıza, işbirliğini geliştirmenize, kullanıcılar için kurulumu basitleştirmenize ve daha geniş Python topluluğuna katkıda bulunmanıza olanak tanır.
1. Adım: PyPI'da bir Hesap oluşturun
Python Paket Dizini (PyPI), Python paketleri için varsayılan depodur. Diğer geliştiricilerin kolayca bulup kurabilmesi için paketlerinizi PyPI üzerinde yayınlayabilirsiniz.
Hatırladığınızdan emin olun Kullanıcı adı Ve şifre paketinizi PyPI'ye yüklerken kimlik doğrulama için bunlara ihtiyacınız olacağından.
Bu araçlar, dağıtılabilir bir paketi tek bir komutla yapılandırmanızı, oluşturmanızı ve iletmenizi kolaylaştırır.
pip install build wheel twine
3. Adım: Bir setup.py Dosyası Oluşturun
Paketinizi dağıtmak için bir setup.py dosyası projenizin kök dizininde. bu kurulum.py dosyası, paketiniz hakkında adı, sürümü, yazarı, açıklaması, bağımlılıkları ve daha fazlası gibi meta verileri içerir.
Paket yönetimi araçları, kurulum.py paketinizi yapılandırmak ve oluşturmak için dosya.
#setup.py
from setuptools import setup, find_packages
setup(
name='' ,
version='1.0.0',
author='' ,
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)
4. Adım: Paketi Oluşturun
sahip olduğunuzda kurulum.py dosya hazırsa, onu dağıtılabilir bir paket oluşturmak için kullanabilirsiniz. Terminalinizde veya komut isteminizde, dizine git içeren kurulum.py dosyasını açın ve aşağıdaki komutu yürütün:
python setup.py sdist bdist_wheel
Bu komut bir mesafe bir kaynak dağıtım paketi (.tar.gz) ve bir tekerlek dağıtım paketi (.whl) içeren dizin. Ayrıca bir inşa etmek Ve bilgi dizin.
Adım 5: Paketi PyPI'ye Yükleyin
Paketiniz hazır olduğunda PyPI'ye yükleyebilirsiniz.
Aşağıdaki komutu yürütün:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
ziyaret edin PyPI paketinizi görmek için proje yönetimi sayfası.
Artık paketinizi yararlı bulan diğer geliştiriciler, paketi yerel olarak yükleyip kullanabilir.
Python Paketi Nasıl Kurulur
Pip gibi paket yöneticileri Python Paket Dizini (PyPI) dahil olmak üzere çeşitli kaynaklardan Python paketlerini kurmayı ve yönetmeyi kolaylaştırır. Kullanarak bir paket yüklemek için bip, terminalinizi veya komut isteminizi açın ve aşağıdaki komutu kullanın:
pip install
Mevcut tüm komutları ve seçenekleri görmek için bip kullan --yardım seçenek.
Temiz Modüller Yazma
Paketler, sırayla diğer modülleri içeren modüller ve alt paketler içerir. Daha iyi kod organizasyonu ve okunabilirliği desteklediğinden, özellikle daha büyük projeler üzerinde çalışırken kodunuzu modüler hale getirmek iyi bir uygulamadır. Bu nedenle, Python ile geliştirirken modülleri net bir şekilde yazmak önemlidir.