למד כיצד ליצור, להפיץ ולהשתמש בחבילות ב-Python בעזרת מדריך זה.
תארו לעצמכם את המשימה המפחידה של פיתוח יישום מקיף המוגבל לקובץ Python יחיד. למרות שהדבר אפשרי מבחינה טכנית, זה נוגד את עקרונות הליבה של בניית תוכנה יעילה, ניתנת לתחזוקה ושימוש חוזר. מסיבות כאלה, חבילות ומודולים חיוניים לבנייה ופיתוח תוכנה.
מהי חבילה?
ב-Python, חבילה מספקת דרך לארגן מודולים ומשאבים הקשורים לוגית ביחד. זוהי ספרייה המכילה מספר מודולים של Python, חבילות משנה ומשאבים אחרים.
חבילות מספקות מבנה היררכי, המאפשר לך לארגן את הקוד של הפרויקט שלך ברמות שונות של הפשטה.
ההבדל בין חבילות ומודולים
אמנם אתה יכול להשתמש גם בחבילות וגם מודולים לארגון קוד, יש הבדלים ביניהם:
- מודול: מודול הוא קובץ שמכיל קוד Python. הוא מגדיר פונקציות, מחלקות, משתנים ואובייקטים אחרים שתוכל לייבא ולהשתמש בקוד שלך.
- חֲבִילָה: חבילה היא אוסף של מודולים אחד או יותר ויכולה לכלול גם חבילות משנה.
כיצד ליצור חבילה ב- Python
כדי ליצור חבילה, בצע את השלבים הבאים.
שלב 1: צור ספריית פרויקטים
התחל ביצירת ספריית פרויקטים.
study_bud/
שלב 2: צור ספריית חבילות
בתוך ספריית הפרויקט שלך, צור ספרייה נוספת שתשמש כספריית החבילה. תן לו שם משמעותי המייצג את המטרה או הפונקציונליות של החבילה. ספריית החבילות תכיל את המודולים וחבילות המשנה הקשורות לחבילה שלך.
study_bud/
math_tool/
שלב 3: הגדר את קובץ החבילה __init__.py
בספריית החבילות, צור __init__.py קוֹבֶץ. הנוכחות של __init__.py הקובץ הוא מה שהופך את הספרייה לחבילה ב-Python.
אם אתה צריך לאתחל קוד בכל פעם שאתה משתמש בחבילה, כלול אותו ב-__init__.py קובץ אחרת הוא תמיד ריק.
study_bud/
math_tool/
__init__.py
שלב 4: הוסף מודולים לחבילה
בתוך ספריית החבילה, הוסף מודולי Python (.py) המגדירים פונקציות, מחלקות או משתנים.
מודולים אלה מכילים את הקוד בפועל המספק את הפונקציונליות של החבילה שלך. אתה יכול ליצור מודולים מרובים בתוך ספריית החבילות.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
שלב 5: הוסף חבילות משנה לחבילה
אם החבילה שלך צריכה להיות בעלת מבנה היררכי או מכילה פונקציות נפרדות, תוכל ליצור חבילות משנה בתוך ספריית החבילות.
חבילת משנה היא פשוט עוד ספריית חבילה בתוך ספריית החבילות הראשית. לכל חבילת משנה צריכה להיות שלה __init__.py קוֹבֶץ. חבילות משנה מאפשרות ארגון והפרדה נוספת של הקוד.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
בשלבים אלה, יצרת א כלי_מתמטי חבילה, הוסיפו שני מודולים (operations.py ו statistics.py), ושתי חבילות משנה גֵאוֹמֶטרִיָה ו חֶשְׁבּוֹן לכל אחד יש את המודולים שלו.
על ידי ביצוע שלבים אלה תוכל לארגן בקלות פונקציונליות קשורה באמצעות חבילה וחבילות משנה, מה שמקל על הניהול והשימוש החוזר בקוד.
כיצד לעבוד עם חבילה ב-Python
כדי לעבוד עם חבילה אתה צריך לייבא אותה. ה יְבוּא ו מ מילות מפתח מאפשרות לך לייבא ולהשתמש בחבילה בקוד שלך.
import math_tool # entire package
אתה יכול גם להשתמש בסימון הנקודות לייבוא מודולים, חבילות משנה או מאפיינים ספציפיים מחבילה. סימון הנקודה מאפשר לך לנווט במבנה ספריות החבילה. סימון נקודות הופך את הייבוא שלך לקריאה יותר וקל יותר לתחזוקה.
from math_tool.operations import add, multiply # specific functions
בקוד לעיל, ניווטת מספריית החבילות (כלי_מתמטי) אל ה פעולות מודול באמצעות סימון הנקודה ושתי פונקציות מיובאות (לְהוֹסִיף ו לְהַכפִּיל).
יבוא מוחלט לעומת יבוא יחסי
עם מוּחלָטיבוא, אתה מציין את הנתיב המלא מהחבילה ברמה העליונה (חבילת השורש) למודול או חבילת המשנה הרצויה. זוהי הדרך הנפוצה והמומלצת ביותר לייבא מודולים וחבילות ב-Python.
from math_tool.geometry.shapes import parallelogram
התחיל מ כלי_מתמטי להיכנס ל גֵאוֹמֶטרִיָה חבילת משנה, מצא את shapes.py מודול, וייבא את מַקבִּילִית פוּנקצִיָה.
בזמן קרוב משפחהיבוא מאפשרים לך לבצע ייבוא ביחס למיקום המודול הנוכחי באמצעות סימון הנקודות כדי לציין ייבוא יחסי.
לדוגמה, בתוך calculus/integrations.py מודול, אתה יכול להשתמש בייבוא יחסי כדי לייבא פונקציה מה- shapes.py מודול ב- גֵאוֹמֶטרִיָה חבילת משנה.
# calculus/integrations.py
from ..geometry.shapes import rhombus
הנקודה הכפולה ("..") אומרת לפייתון:
- התחל מספריית חבילת המשנה (חֶשְׁבּוֹן) שבו המודול (integrations.py) קיים.
- היכנסו לחבילת האב (כלי_מתמטי) ספריית המשנה של חבילת המשנה.
- למצוא את ה גֵאוֹמֶטרִיָה חבילת משנה בספריית האב.
- היכנס ל shapes.py מודול ויבוא מְעוּיָן מזה.
אז סימון הנקודה מייצג את מספר הספריות שיש לנווט אליהן מספריית המודול הנוכחית.
כינוי יבוא מטעמי נוחות
אתה יכול להקצות כינוי לייבוא כדי שיהיה קל יותר להתייחס אליו בקוד שלך. כינויים שימושיים כאשר עוסקים בשמות חבילות או מודולים ארוכים.
כדי להקצות כינוי השתמש ב- כפי ש מילת מפתח.
import math_tool.calculus as cal
כיצד להפיץ את החבילה שלך ב- Python
Python מספקת לך כלים ופלטפורמה לבנייה והפצה של החבילה שלך. הפצת החבילה שלך מאפשרת לך לשתף את הקוד שלך עם מפתחים אחרים, לקדם שיתוף פעולה, לפשט את ההתקנה עבור המשתמשים ולתרום לקהילת Python הרחבה יותר.
שלב 1: צור חשבון ב- PyPI
אינדקס חבילות פייתון (PyPI) הוא מאגר ברירת המחדל עבור חבילות Python. אתה יכול לפרסם את החבילות שלך ב- PyPI כך שמפתחים אחרים יוכלו למצוא ולהתקין אותן בקלות.
הקפד לזכור את שלך שם משתמש ו סיסמה מכיוון שתזדקק להם לאימות בעת העלאת החבילה שלך ל- PyPI.
כלים אלה מקלים עליך להגדיר, לבנות ולדחוף חבילה הניתנת להפצה בפקודה אחת.
pip install build wheel twine
שלב 3: צור קובץ setup.py
כדי להפיץ את החבילה שלך, צור א קובץ setup.py בספריית השורש של הפרויקט שלך. ה setup.py הקובץ מכיל מטא נתונים על החבילה שלך, כגון השם, הגרסה, המחבר, התיאור, התלות שלה ועוד.
כלי ניהול החבילות ישתמשו ב- setup.py קובץ כדי להגדיר ולבנות את החבילה שלך.
#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: בנה את החבילה
ברגע שיש לך את setup.py קובץ מוכן, אתה יכול להשתמש בו כדי לבנות חבילה הניתנת להפצה. בטרמינל או בשורת הפקודה, נווט אל הספרייה המכיל את setup.py קובץ ובצע את הפקודה הבאה:
python setup.py sdist bdist_wheel
פקודה זו יוצרת א dist ספרייה המכילה חבילת הפצת מקור (.tar.gz) וחבילת הפצת גלגלים (.whl). תראה גם א לִבנוֹת ו מידע מַדרִיך.
שלב 5: העלה את החבילה ל- PyPI
כשהחבילה שלך מוכנה, תוכל להעלות אותה ל- PyPI.
בצע את הפקודה הבאה:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
בקר שלך PyPI דף ניהול פרויקטים כדי לראות את החבילה שלך.
כעת מפתחים אחרים שמוצאים את החבילה שלך שימושית יכולים להתקין ולהשתמש בה באופן מקומי.
כיצד להתקין חבילת Python
מנהלי חבילות אוהבים pip להקל על ההתקנה והניהול של חבילות Python ממקורות שונים, כולל אינדקס חבילות Python (PyPI). כדי להתקין חבילה באמצעות צִפצוּף, פתח את המסוף או את שורת הפקודה והשתמש בפקודה הבאה:
pip install
כדי לראות את כל הפקודות והאפשרויות הזמינות עבור צִפצוּף להשתמש ב --עֶזרָה אוֹפְּצִיָה.
כתיבת מודולים נקיים
חבילות מכילות מודולים וחבילות משנה אשר בתורן מכילות מודולים אחרים. זה מנהג טוב לעשות מודולריזציה של הקוד שלך, במיוחד כאשר עובדים על פרויקטים גדולים יותר, מכיוון שהוא מקדם ארגון קוד טוב יותר וקריאות. לכן חשוב לכתוב מודולים בבהירות בעת פיתוח עם Python.