Pelajari cara membuat, mendistribusikan, dan menggunakan paket di Python dengan bantuan panduan ini.
Bayangkan tugas berat untuk mengembangkan aplikasi komprehensif yang terbatas pada satu file Python. Meskipun layak secara teknis, ini bertentangan dengan prinsip inti membangun perangkat lunak yang efisien, dapat dipelihara, dan dapat digunakan kembali. Untuk alasan tersebut, paket dan modul sangat penting untuk membangun dan mengembangkan perangkat lunak.
Apa itu Paket?
Dalam Python, sebuah paket menyediakan cara untuk mengatur modul dan sumber daya yang terkait secara logis secara bersamaan. Ini adalah direktori yang berisi banyak modul Python, sub-paket, dan sumber daya lainnya.
Paket menyediakan struktur hierarkis, memungkinkan Anda mengatur kode proyek Anda pada berbagai tingkat abstraksi.
Perbedaan Antara Paket dan Modul
Meskipun Anda dapat menggunakan kedua paket dan modul untuk mengatur kode, ada perbedaan di antara mereka:
- Modul: Modul adalah file yang menyimpan kode Python. Ini mendefinisikan fungsi, kelas, variabel, dan objek lain yang dapat Anda impor dan gunakan dalam kode Anda.
- Kemasan: Paket adalah kumpulan dari satu atau lebih modul dan juga dapat menyertakan sub-paket.
Cara Membuat Paket dengan Python
Untuk membuat paket, ikuti langkah-langkah berikut ini.
Langkah 1: Buat Direktori Proyek
Mulailah dengan membuat direktori proyek.
study_bud/
Langkah 2: Buat Direktori Paket
Di dalam direktori proyek Anda, buat direktori lain yang akan berfungsi sebagai direktori paket. Berikan nama yang bermakna yang mewakili tujuan atau fungsionalitas paket. Direktori paket akan berisi modul dan sub-paket yang terkait dengan paket Anda.
study_bud/
math_tool/
Langkah 3: Tentukan File Paket __init__.py
Di direktori paket, buat __init__.py mengajukan. Kehadiran dari __init__.py file inilah yang menjadikan direktori sebagai paket dengan Python.
Jika Anda perlu menginisialisasi kode setiap kali Anda menggunakan paket, sertakan dalam __init__.py file jika tidak selalu kosong.
study_bud/
math_tool/
__init__.py
Langkah 4: Tambahkan Modul ke Paket
Di dalam direktori paket, tambahkan modul Python (.py) yang mendefinisikan fungsi, kelas, atau variabel.
Modul-modul ini berisi kode aktual yang menyediakan fungsionalitas paket Anda. Anda dapat membuat banyak modul di dalam direktori paket.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
Langkah 5: Tambahkan Sub-Paket ke Paket
Jika paket Anda perlu memiliki struktur hierarkis atau berisi fungsionalitas yang berbeda, Anda dapat membuat sub-paket di dalam direktori paket.
Sub-paket hanyalah direktori paket lain di dalam direktori paket utama. Setiap sub-paket harus memilikinya __init__.py mengajukan. Sub-paket memungkinkan pengaturan lebih lanjut dan pemisahan kode.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
Dalam langkah-langkah ini, Anda telah membuat a alat_matematika paket, menambahkan dua modul (operasi.py Dan stats.py), dan dua sub-paket geometri Dan kalkulus masing-masing memiliki modulnya.
Dengan mengikuti langkah-langkah ini, Anda dapat dengan mudah mengatur fungsionalitas terkait menggunakan paket dan sub-paket, membuatnya lebih mudah untuk mengelola dan menggunakan kembali kode.
Cara Bekerja Dengan Paket di Python
Untuk bekerja dengan paket, Anda perlu mengimpornya. Itu impor Dan dari kata kunci memungkinkan Anda untuk mengimpor dan menggunakan paket dalam kode Anda.
import math_tool # entire package
Anda juga dapat menggunakan notasi titik untuk mengimpor modul, sub-paket, atau properti tertentu dari sebuah paket. Notasi titik memungkinkan Anda menavigasi melalui struktur direktori paket. Notasi titik membuat impor Anda lebih mudah dibaca dan lebih mudah dikelola.
from math_tool.operations import add, multiply # specific functions
Dalam kode di atas, Anda menavigasi dari direktori paket (alat_matematika) ke operasi modul menggunakan notasi titik dan mengimpor dua fungsi (menambahkan Dan berkembang biak).
Impor Mutlak vs. Impor Relatif
Dengan mutlakimpor, Anda menentukan path lengkap dari paket tingkat atas (paket root) ke modul atau sub-paket yang diinginkan. Ini adalah cara yang paling umum dan direkomendasikan untuk mengimpor modul dan paket dengan Python.
from math_tool.geometry.shapes import parallelogram
Mulai dari alat_matematika pergi ke geometri sub-paket, temukan bentuk.py modul, dan impor genjang fungsi.
Ketika relatifimpor memungkinkan Anda melakukan impor relatif terhadap lokasi modul saat ini menggunakan notasi titik untuk menentukan impor relatif.
Misalnya di dalam kalkulus/integrasi.py modul, Anda dapat menggunakan impor relatif untuk mengimpor fungsi dari bentuk.py modul di geometri sub-paket.
# calculus/integrations.py
from ..geometry.shapes import rhombus
Titik ganda ("..") memberi tahu Python untuk:
- Mulai dari direktori sub-paket (kalkulus) dimana modul (integrasi.py) ada.
- Masuk ke paket induk (alat_matematika) direktori sub-paket.
- Temukan geometri sub-paket di direktori induk.
- Pergilah ke bentuk.py modul dan impor belah ketupat dari itu.
Jadi notasi titik mewakili jumlah direktori untuk dinavigasi dari direktori modul saat ini.
Impor Alias untuk Kenyamanan
Anda dapat menetapkan alias untuk impor sehingga lebih mudah untuk merujuk ke kode Anda. Alias berguna ketika berhadapan dengan nama paket atau modul yang panjang.
Untuk menetapkan alias gunakan sebagai kata kunci.
import math_tool.calculus as cal
Cara Mendistribusikan Paket Anda dengan Python
Python memberi Anda alat dan platform untuk membangun dan mendistribusikan paket Anda. Mendistribusikan paket Anda memungkinkan Anda berbagi kode dengan pengembang lain, mempromosikan kolaborasi, menyederhanakan instalasi untuk pengguna, dan berkontribusi pada komunitas Python yang lebih luas.
Langkah 1: Buat Akun di PyPI
Indeks Paket Python (PyPI) adalah repositori default untuk paket Python. Anda dapat menerbitkan paket Anda di PyPI sehingga pengembang lain dapat dengan mudah menemukan dan menginstalnya.
Pastikan untuk mengingat Anda nama belakang Dan kata sandi karena Anda memerlukannya untuk autentikasi saat mengunggah paket Anda ke PyPI.
Alat-alat ini memudahkan Anda untuk mengonfigurasi, membuat, dan mendorong paket yang dapat didistribusikan dalam satu perintah.
pip install build wheel twine
Langkah 3: Buat File setup.py
Untuk mendistribusikan paket Anda, buatlah a file setup.py di direktori root proyek Anda. Itu setup.py file berisi metadata tentang paket Anda, seperti nama, versi, penulis, deskripsi, dependensi, dan lainnya.
Alat manajemen paket akan menggunakan setup.py file untuk mengonfigurasi dan membangun paket Anda.
#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',
],
)
Langkah 4: Bangun Paket
Setelah Anda memiliki setup.py file siap, Anda dapat menggunakannya untuk membuat paket yang dapat didistribusikan. Di terminal atau prompt perintah Anda, arahkan ke direktori berisi setup.py file dan jalankan perintah berikut:
python setup.py sdist bdist_wheel
Perintah ini menghasilkan a dist direktori yang berisi paket distribusi sumber (.tar.gz) dan paket distribusi roda (.whl). Anda juga akan melihat a membangun Dan info direktori.
Langkah 5: Unggah Paket ke PyPI
Dengan paket Anda siap, Anda dapat mengunggahnya ke PyPI.
Jalankan perintah berikut:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Kunjungi Anda PyPI halaman manajemen proyek untuk melihat paket Anda.
Sekarang pengembang lain yang menganggap paket Anda bermanfaat dapat menginstal dan menggunakannya secara lokal.
Cara Memasang Paket Python
Manajer paket menyukai pip memudahkan untuk menginstal dan mengelola paket Python dari berbagai sumber, termasuk Python Package Index (PyPI). Untuk menginstal paket menggunakan pip, buka terminal atau prompt perintah Anda dan gunakan perintah berikut:
pip install
Untuk melihat semua perintah dan opsi yang tersedia untuk pip menggunakan --membantu pilihan.
Menulis Modul Bersih
Paket berisi modul dan sub-paket yang pada gilirannya berisi modul lain. Ini adalah praktik yang baik untuk memodulasi kode Anda, terutama saat mengerjakan proyek yang lebih besar, karena ini mendorong organisasi dan keterbacaan kode yang lebih baik. Jadi penting untuk menulis modul dengan jelas saat mengembangkan dengan Python.