24 ספריות פייתון לכל מפתח פיתון

רוצה סיבה טובה להצלחה המדהימה של שפת התכנות של פייתון? אל תחפש רחוק יותר מהאוסף העצום של ספריות שזמינות עבור Python, הן ספריות מקוריות והן צד שלישי. עם כל כך הרבה ספריות פייתון שם בחוץ, אין זה מפתיע שחלקן לא זוכות לכל תשומת הלב הראויה. בנוסף, מתכנתים שעובדים אך ורק בתחום אחד לא תמיד יודעים על הדברים הטובים העומדים לרשותם עבור סוגים אחרים של עבודה.

להלן 24 ספריות פיתון שאולי התעלמת מהן אך בהחלט שוות את תשומת לבך. אבני חן אלה מפעילות את תועלת השימוש, מפשטות הכל מגישה למערכת קבצים, תכנות מסדי נתונים ועבודה עם שירותי ענן לבניית אפליקציות קלות משקל, יצירת ממשקי משתמש ועבודה עם תמונות, ספרים אלקטרוניים וקבצי Word - ועוד הרבה מעבר לכך. חלקן ידועות, אחרות פחות מוכרות, אך לכל ספריות הפיתון הללו מגיע מקום בארגז הכלים שלכם.

אפאצ'י ליבקלוד

מה עושה Libcloud: גישה למספר ספקי ענן באמצעות ממשק API אחיד אחד, עקבי.

מדוע להשתמש ב- Libcloud: אם התיאור של Apache Libcloud לעיל לא גורם לך למחוא כפיים מהשמחה, אז לא ניסית לעבוד עם מספר עננים. ספקי ענן כולם אוהבים לעשות את הדברים בדרך שלהם, מה שהופך מנגנון אחיד להתמודדות עם עשרות ספקים לחיסכון בזמן עצום ולמתן כאב ראש. ממשקי API זמינים לחישוב, אחסון, איזון עומסים ו- DNS, עם תמיכה ב- Python 2.x ו- Python 3.x כמו גם ב- PyPy, מהדר ה- JIT המשפר ביצועים עבור Python.

חֵץ

מה חץ עושה: טיפול נקי יותר בתאריכים ובשעות בפייתון.

למה להשתמש בחץ: ההתמודדות עם אזורי זמן, המרות תאריכים, פורמטים של תאריכים וכל השאר זה כבר כאב ראש וחצי. זרוק את הספרייה הסטנדרטית של פיתון לעבודת תאריך / שעה, ותקבל שני כאבי ראש וחצי.

החץ מספק ארבעה יתרונות גדולים. אחת, חץ הוא נפתח ב תחליף מודול datetime של פיתון, כלומר שיחות פונקציה נפוצה כמו .now()ואת .utcnow()העבודה כמצופה. שנית, חץ מספק שיטות לצרכים נפוצים כמו העברת המרה של אזורי זמן. שלוש, חץ מספק מידע תאריך / שעה "אנושי" - כגון היכולת לומר שמשהו קרה "לפני שעה" או שיקרה "בעוד שעתיים" ללא מאמץ רב. ארבע, חץ יכול למקם מידע על תאריך / שעה מבלי להזיע.

לְהַבִּיט

מה הנה עושה:  תמיכה חזקה באיתור באגים בסגנון הדפס בפייתון.

מדוע להשתמש בהנה:  יש דרך אחת פשוטה לבצע ניפוי באגים בפייתון, או כמעט בכל שפת תכנות לצורך העניין: הכנס printהצהרות שורות . אך בעוד שניקוי ניפוי-הדפסים אינו מעניין בתוכניות קטנות, לא כל כך קל להשיג תוצאות שימושיות בפרויקטים גדולים ורב-מודולים.

הנה מספק ערכת כלים לצורך איתור באגים בהקשר באמצעות הצהרות הדפסה. זה מאפשר לך להטיל מראה אחיד על הפלט, לתייג את התוצאות כך שניתן יהיה למיין אותן באמצעות חיפושים או פילטרים, ולספק הקשרים על פני מודולים כך שניתן יהיה לבצע ניפוי נכון של פונקציות שמקורן במודול אחד באחרת. הנה מטפל בתרחישים נפוצים ספציפיים לפיתון כמו הדפסת מילון פנימי של אובייקט, גילוי תכונות מקוננות, ואחסון ושימוש חוזר בתוצאות לצורך השוואה בנקודות אחרות בתהליך איתור באגים.

שָׁחוֹר

מה שחור עושה: מעצב קוד פייתון על פי מערכת חוקים מחמירה וכמעט בלתי ניתנת לשינוי.

מדוע להשתמש בשחור:  למעצבי קוד של פייתון, כמו YAPF, יש אפשרויות רבות הניתנות להגדרה - אורך קו, אפשרויות פיצול שורה, טיפול בפסיקים נגררים וכן הלאה. שחור מיישם קבוצה ברירת מחדל עקבית לכללים שלא ניתנים לשינוי. הקוד המעוצב המתקבל הוא עקבי ככל האפשר בין בסיסי קוד ובין משתמשים, עם ההבדלים המעטים ביותר בין קבצים ערוכים.

שחור לוקח קצת להתרגל, במיוחד אם אתה טיפה בנוגע למרחב לבן אנכי, הצהרות עם קינונים עמוקים (למשל, רשימות ברשימות) ואפשרויות עיצוב אחרות. אבל בטווח הארוך זה משחרר אותך מהצורך לחשוב על עיצוב, ומאפשר לך להתרכז בקוד שלך.

בקבוק

מה עושה בקבוק: אפליקציות רשת קלות ומהירות.

למה להשתמש בבקבוק: כשאתה רוצה לזרוק API מהיר של RESTful או להשתמש בעצמות החשופות של מסגרת אינטרנט לבניית אפליקציה, בקבוק מסוגל אך זעיר נותן לך לא יותר ממה שאתה צריך. ניתוב, תבניות, גישה לנתוני בקשה ותגובה, תמיכה במספר סוגי שרתים מ- CGI ישן ומעלה ותמיכה בתכונות מתקדמות יותר כמו WebSockets - הכל כאן. כמות העבודה הדרושה כדי להתחיל גם היא מינימלית, ועיצובו של Bottle ניתן להרחבה באלגנטיות כאשר יש צורך בפונקציות מתקדמות יותר. 

נְקִישָׁה

מה קליק עושה:  מאפשר לבנות במהירות ממשקי שורת פקודה לאפליקציות Python.

מדוע להשתמש ב- Click:  ממשק המשתמש הוא נוח, אך CLI הוא המקום בו הכוח האמיתי נמצא. עם זאת, בניית CLI חזקה היא כמעט לא קלה, וערכת הכלים המוגדרת כברירת מחדל לאיסוף ושימוש באפשרויות שורת פקודה בפייתון היא פרימיטיבית.

לחץ עוטף את החלקים והחתיכות בממשק API של בניית CLI ברמה גבוהה. אם אתה רק רוצה ליצור כמה פקודות בסיסיות, אתה יכול לעשות זאת עם כמה שורות קוד. אם אתה רוצה התנהגות מתקדמת יותר, כמו לבקש בנפרד לקבלת מידע נוסף אודות פרמטר, או להפיק ערכים ממשתני סביבה, לחץ כיסה. קליק תומך גם בצבעי מסוף באמצעות  colorama הספרייה, וניתן להרחיב אותו באמצעות תוספים של צד שלישי.

ספר אלקטרוני

מה EbookLib עושה:  קרא וכתוב קבצי .epub.

מדוע להשתמש ב- EbookLib: יצירת ספרים אלקטרוניים בדרך כלל מחייבת התלה  בכלי שורת פקודה כזה או אחר. EbookLib מספק כלי ניהול ו- API שמפשטים את התהליך. זה עובד עם קבצי EPUB 2 ו- EPUB 3, עם תמיכת קינדל בפיתוח.

ספק את התמונות ואת הטקסט (האחרון בפורמט HTML), ו- EbookLib יכול להרכיב את החלקים הללו לספר אלקטרוני עם פרקים, תוכן עניינים מקונן, תמונות, סימון HTML וכן הלאה. נתוני כיסוי, עמוד שדרה וגליון סגנונות נתמכים גם הם. מערכת תוספים מאפשרת לצדדים שלישיים להרחיב את התנהגויות הספרייה.

אם אינך זקוק לכל מה שיש ל- EbookLib להציע, נסה את Mkepub. Mkepub מארז פונקציונליות בסיסית להרכבת ספרים אלקטרוניים בספריה בגודל של כמה קילובייט בלבד. חסרון אחד קטן של Mkepub הוא שהוא דורש את Jinja2, מה שמצריך את ספריית MarkupSafe.

דָבִיק

מה גוי עושה:  תן לתוכנת Python מבוססת קונסולה ממשק משתמש גרפי מקורי.

מדוע להשתמש ב- Gooey:  הצגת משתמשים, במיוחד משתמשי דרגה וקובץ, עם ממשק שורת פקודה היא אחת הדרכים הטובות ביותר להרתיע את השימוש ביישום שלך. מעטים מלבד החנון הארדקור כמו להבין באילו אפשרויות לעבור ובאיזה סדר. גוי לוקח טיעונים המצופים בספריית argparse ומציג אותם בפני המשתמשים כטופס GUI, באמצעות ספריית WxPython. כל האפשרויות מתויגות ומוצגות עם פקדים מתאימים (כגון תפריט נפתח לטיעון רב אפשרויות). מעט מאוד קידוד נוסף - יחיד כולל ומעצב יחיד - נדרש בכדי לגרום לזה לעבוד, בהנחה שאתה כבר משתמש בארגפרס.

לעורר

מה Invoke עושה: ביצוע מרחוק של Pythonic - כלומר, לבצע משימות מנהל באמצעות ספריית Python.

מדוע להשתמש ב- Invoke: שימוש בפייתון כתחליף למשימות סקריפט נפוצות של סקריפטים הגיוני בעולם. Invoke מספק ממשק API ברמה גבוהה להפעלת פקודות מעטפת וניהול משימות של שורת פקודה כאילו היו פונקציות של פייתון, ומאפשר לך להטמיע את המשימות האלה בקוד שלך או לבנות סביבן באלגנטיות. רק היזהר לא לאפשר העברת קלט לא מהימן כפי שהוא לכל פקודות מעטפת.

נויטקה

מה נויטקה עושה: אוסף את פייתון לכדי הפעלת  C עצמאית.

מדוע להשתמש ב- Nuitka:  כמו Cython, Nuitka מכין את Python ל- C. עם זאת, בעוד ש- Cython דורש תחביר מותאם אישית משלו לקבלת התוצאות הטובות ביותר, ומתמקד בעיקר ביישומי מתמטיקה וסטטיסטיקה, Nuitka עובד עם כל תוכנית Python כפי שהוא, מרכיב אותו ל- C ומייצר קובץ הפעלה של קובץ יחיד, המיישם אופטימיזציות היכן שהוא יכול בדרך. נויטקה עדיין בשלבים המוקדמים, ורבים מהאופטימיזציות המתוכננות עוד עתידות לבוא. עם זאת, זוהי דרך נוחה להפוך סקריפט פייתון לאפליקציית שורת פקודה מהירה.

נומבה

מה נומבה עושה:  להאיץ באופן סלקטיבי פונקציות עתירות מתמטיקה.

למה להשתמש בנומבה:  עולם הפיתון כולל תת-תרבות שלמה של חבילות להאצת פעולות המתמטיקה. לדוגמא, NumPy עובד על ידי עטיפת ספריות C מהירות בממשק פייתון, וסייתון מרכיב את Python ל- C עם הקלדה אופציונלית לביצועים מואצים. אבל נומבה היא בקלות הנוחה ביותר, מכיוון שהיא מאפשרת להאיץ באופן סלקטיבי פונקציות פייתון עם לא יותר ממעצב. להגברת מהירות נוספת, באפשרותך להשתמש בשמות פיתון נפוצים כדי להקביל עומסי עבודה, או להשתמש בהוראות SIMD או GPU.

שים לב שאתה יכול להשתמש ב- NumPy עם Numba. אחרי הכל, ל- NumPy יש אלגוריתמים רבים מהקופסה שאינם צריכים להיות מיושמים מאפס. אך עבור אלגוריתמי "גרעין" קטנים, נומבה תעלה במקרים רבים על NumPy פעמים רבות.

Openpyxl

מה עושה Openpyxl:  קורא, כותב ומתפעל קבצי Excel.

מדוע להשתמש ב- OpenPyxl:  בקש ממישהו לנקוב בשמו של שלושה כלים שמשתמשים במספר משתמשים בעבודתם, רוב הסיכויים שתקבל Python, R ו- Excel, לאו דווקא לפי הסדר הזה. ל- Excel אין (עדיין) קישוריות מקורית של Python, אך חבילות צד שלישי גישרו על הפער בדרכים שונות.

Openpyxl עובד על ידי שינוי קבצי Excel   ולא על ידי מניפולציה ישירה על Excel. באמצעות Openpyxl תוכל ליצור אוטומטית גליונות אלקטרוניים וחוברות עבודה, ליצור נוסחאות, לאכלס תאים בנוסחאות אלו ולבצע פעולות רבות אחרות. ניתן גם לשנות את המאפיינים של אובייקטים ב- Excel, כגון סגנונות תאים ועיצוב מותנה. מי שמבלה זמן משמעותי בהייה בגיליונות אלקטרוניים ימצא כאן משהו שימושי.

פיווי

מה שפיואי עושה:  ORM זעיר (מיפוי-יחס אובייקטים) התומך ב- SQLite, MySQL ו- PostgreSQL, עם סיומות רבות.

למה להשתמש ב- Peewee:  לא כולם אוהבים ORM; חלקם מעדיפים להשאיר דוגמאות לסכימה בצד מסד הנתונים ולסיים איתו. אך עבור מפתחים שאינם רוצים לגעת במאגרי מידע, ORM בנוי היטב ולא פולשני יכול להיות מתנה משמים. וגם עבור מפתחים שאינם רוצים ORM מלא כמו SQL Alchemy, פיווי מתאים מאוד.

קל לבנות, להתחבר ולתפעל את דגמי ה- Peewee. בנוסף, פונקציות נפוצות רבות של מניפולציה של שאילתות, כגון עמוד, מובנות ישירות פנימה. תכונות נוספות זמינות כתוספות, כולל הרחבות עבור מסדי נתונים אחרים, כלי בדיקה ומערכת העברת סכמות - תכונה שאפילו שונא ORM יכול ללמוד ללמוד אהבה. שים לב שענף ה- Peewee 3.x (המהדורה המומלצת) אינו תואם לחלוטין לאחור לגרסאות קודמות של Peewee.

כרית

מה הכרית עושה:  עיבוד תמונה ללא הכאב.

למה להשתמש בכרית:  רוב הפיתוניסטות שביצעו עיבוד תמונה צריכות להכיר את PIL (Python Imaging Library), אך ל- PIL יש חסרונות ומגבלות והיא מתעדכנת לעיתים רחוקות. מטרות ריפוד להיות גם קל לשימוש ו  קוד תואם עם PIL באמצעות שינויים מינימליים. הרחבות כלולות לשיחה עם שתי פונקציות ההדמיה המקוריות של Windows ועם חבילת ה- GUI של Tkinter מגובה Tcl / Tk של Python. כרית זמינה דרך GitHub או במאגר PyPI.

שִׁירָה

מה עושה שירה:  מנהל תלות ואריזה לפרויקטים של פייתון שלך בצורה ברמה גבוהה.

מדוע להשתמש בשירה:  בתיאוריה אינך צריך לעשות דבר בכדי להתחיל פרויקט פייתון חדש, למעט ליצור ספריה ריקה ולמלא אותה בקבצי .py. בפועל, במיוחד עבור פרויקט שאפתני, תצטרך לעשות הרבה יותר - ליצור README, להגדיר מבנה תיקיות כלשהו, ​​להצהיר על התלות שלך וכו '. לעשות את כל זה ביד זה כאב ראש.

שירה ממכנת הרבה מההתקנה והתחזוקה הזו. רץ poetry new ליצור ספריית פרוייקטים וסביבה וירטואלית חדשה, מאוכלסת מראש עם מגוון מרכיבים בסיסי. הכריז על התלות שלך באמצעות תבנית הקובץ pyprojec.toml של Python, ושירה תנהל אותם עבורך. מוצרים קיימים בניהול שירה יכולים להתקין, לרענן ולשנות את התלות שלהם אוטומטית משורת הפקודה של שירה. שירה מטפלת גם בפרסום במאגר מרוחק (כמו PyPI).

מערכת PyFiles

מה עושה PyFilesystem:  ממשק פיתוני לכל מערכת קבצים -  כל  מערכת קבצים.

מדוע להשתמש ב- PyFilesystem:  הרעיון הבסיסי שעומד מאחורי PyFilesystem לא יכול להיות פשוט יותר: כמו fileשהאובייקטים של Python מופשטים קובץ יחיד, FSהאובייקטים של PyFilesystem מופשטים מערכת קבצים שלמה. זה לא אומר רק מערכות קבצים בדיסק. מערכת PyFiles תומכת גם בספריות FTP, מערכות קבצים בזיכרון, מערכות קבצים עבור מיקומים המוגדרים על ידי מערכת ההפעלה (כגון מדריך המשתמשים), ואפילו שילובים של האמור לעיל מכוסים זה על זה.

בנוסף להקלה על כתיבת קוד חוצה פלטפורמות המניפולציות על קבצים, PyFilesystem מונע את הצורך לקבץ סקריפטים מחלקים שונים בספריה הסטנדרטית, בעיקר  os ו  io. הוא גם מספק כלי עזר שאולי יהיה צורך ליצור מאפס, כמו כלי להדפסת תצוגות עץ ידידותיות לקונסולה של מערכת קבצים.

פיגמה

מה Pygame עושה:  צור משחקי וידאו, או ממשקי קצה באיכות משחק, בפייתון.