معرفی ده تا از برترین کتابخانه‌های عمومی پایتون

ترجمه و تالیف : علیرضا معمارزاده
تاریخ انتشار : 09 بهمن 98
خواندن در 5 دقیقه
دسته بندی ها : پایتون

پایتون به‌عنوان یک زبان برنامه‌نویسی تعداد زیادی پکیج مختلف دارد. بااین‌وجود تعداد زیادی از کتابخانه‌ها برای این زبان برنامه‌نویسی مفسر، سطح بالا و با اهداف کلی، موجود هستند.

بین عناصر محبوبیت پایتون، داشتن مجموعه‌ای مهم از کتابخانه‌ها، عنصر قابل‌توجهی است. هرچه یک زبان برنامه‌نویسی تعداد بیشتری کتابخانه و پکیج در اختیار خود داشته باشد، موارد استفاده متنوع‌تری هم خواهد داشت.

کتابخانه‌های پایتون

در این مقاله از راکت ما ده تا از برترین کتابخانه‌های پایتون را معرفی می‌کنیم. به یاد داشته باشید که این فهرست براساس یافته‌های آمار توسعه‌دهندگان پایتون در سال 2018 است.

Requests

هدف اولیه: ساده‌تر کردن درخواست‌های HTTP

یکی از محبوب‌ترین کتابخانه‌های پایتون، Requests است که هدف آن ساده‌تر کردن و کاربرپسند کردن HTTP است. تحت لایسنس "Apache2" است و در پایتون نوشته شده، Requests تحت استاندارد "de facto" است که توسط توسعه‌دهندگان برای ساخت درخواست‌های HTTP در پایتون استفاده شده است.

علاوه بر اینکه از کتابخانه Requests برای ارسال درخواست‌های HTTP به سرور استفاده می‌شود، امکان اضافه کردن قالب داده، محتوا، سربرگ، فایل‌های چندبخشی و ... را نیز فراهم می‌کند. با این کتابخانه، توسعه‌دهندگان نیازی به اضافه کردن کوئری در URL و یا رمزگذاری داده‌های POST به‌صورت دستی ندارند. 

کتابخانه Requests پیچیدگی‌ها فراوان ساخت درخواست‌های HTTP را به یک API ساده تبدیل می‌کند به‌طوری‌که توسعه‌دهندگان بتوانند بیشتر روی تعامل با سرویس‌ها تمرکز کنند. 

این کتابخانه، از پایتون نسخه 2.7، 3.4 و نسخه‌های بالاتر را پشتیبانی می‌کند و در PyPy هم به‌خوبی کار می‌کند.

نکات مهم:

  • امکان آپلود فایل‌های چندقسمتی و دانلود فایل‌های رشته‌ای در آن وجود دارد.
  • رمزگذاری خودکار محتوا و خارج کردن از حالت فشرده به‌صورت خودکار
  • تائید SSL به روش مرورگر
  • ویژگی‌ها را می‌توان مطابق با الزامات، شخصی‌سازی و بهینه‌سازی کرد.
  • تداوم برقراری ارتباط
  • دامنه‌ها و URL‌های بین‌المللی را پشتیبانی می‌کند.

Pillow

هدف اولیه: دست‌کاری تصاویر

اهداف ثانویه: آرشیو تصاویر، نمایش تصاویر

کتابخانه تصویری پایتون یا PIL"" یک کتابخانه رایگان است که امکان پردازش تصویر در مفسر پایتون را فراهم می‌کند. به‌عبارت ساده‌تر، PIL اجازه دست‌کاری تصاویر، باز کردن و ذخیره کردن فایل‌های عکس در قالب‌های مختلف در پایتون را می‌دهد. توسط "Alex Clark" و همکارانش منتشر شده و Pillow یک قسمت از کتابخانه PIL است.

علاوه بر ارائه قابلیت پردازش تصویر قدرتمند، Pillow یک نمایش داخلی مؤثر و پشتیبانی گسترده قالب‌های فایلی را ارائه می‌دهد. این کتابخانه پایتون برای ارائه دسترسی سریع به داده‌های ذخیره‌شده در چند قالب اصلی پیکسل ارائه شده است.

نکات مهم:

  • پشتیبانی مؤثر از باگ‌ها با استفاده از متد show()
  • ایده‌آل برای برنامه‌های پردازش کلی
  • قادر به تشخیص و خواندن تعداد زیادی از قالب‌های مختلف فایلی است
  • پشتیبانی از تبدیل داده‌ها 
  • روش هیستوگرام اجازه حذف بعضی از آمارها را از تصویر می‌دهد که می‌توان از آن برای بهبود کنتراست خودکار و آنالیز آمار کلی استفاده کرد.

Scrapy

هدف اولیه: استخراج داده از وب

اهداف ثانویه: تست‌های خودکار، داده‌کاوی و خزنده وب

Scrapy یک فریمورک رایگان و متن‌باز پایتون است که به‌طور گسترده برای استخراج داده از وب و تعدادی کارهای دیگر شامل تست خودکار و داده‌کاوی مورداستفاده قرار می‌گیرد.

در ابتدا، Scrapy برای استخراج داده از وب توسعه یافت، اما در طی زمان برای تحقق اهداف دیگری، تحول یافت. این کتابخانه یک روش سریع و سطح بالا برای خزیدن در وب‌سایت‌ها و استخراج داده‌های ساختارمند از صفحات وب ارائه می‌کند.

نکات مهم:

  • نوشتن یک spider برای خزیدن در وب‌سایت‌ها و استخراج داده با آن راحت است.
  • اصول DRY (Don't Repeat Yourself) را رعایت می‌کند.
  • یک پوسته برای خزنده وب ارائه می‌دهد که توسعه‌دهندگان با آن می‌توانند رفتار وب‌سایت را آزمایش کنند.
  • از صدور داده‌های استخراج‌شده با استفاده از خط فرمان پشتیبانی می‌کند.

Asyncio

هدف اولیه: کدنویسی چند نخی در پایتون

تعداد زیادی از توسعه‌دهندگان پایتون در سراسر جهان، از کتابخانه asyncio برای نوشتن کد هم‌زمان با استفاده از سینتکس ""async/await استفاده می‌کنند. در بیشتر موارد، کتابخانه asyncio برای IO"" و کد شبکه ایده‌آل است.

از asyncio برای ساخت فریمورک‌های مختلف غیرهمزمان در پایتون استفاده می‌شود، که کتابخانه‌های اتصال پایگاه داده، صف‌بندی وظایف توزیع‌شده، شبکه‌ و سرورهای وب با عملکرد سطح بالا و بسیاری موارد دیگر را ارائه می‌دهند. این کتابخانه همراه با تعدادی API عرضه شده است.

نکات مهم:

  • امکان کنترل فرایندهای فرعی، توزیع وظایف ازطریق صف‌بندی، انجام IO و IPC شبکه و همگام‌سازی کدهای هم‌زمان را فراهم می‌کند.
  • بین کتابخانه‌های مبتنی بر callback و کدها با سینتکس async/await و با استفاده از API‌های سطح پایین ارتباط برقرار می‌کند.
  • همراه با مجموعه‌ای از API‌های سطح بالا برای اجرای هم‌زمان دستورالعمل‌های اتصال ورودی به خروجی پایتون است و کنترل کاملی روی اجرای آن‌ها دارد.
  • کار با کد غیرهمزمان را راحت می‌کند.
  • پشتیبانی و مدیریت از انواع رویداد‌های مختلف

Tkinter

هدف اولیه: توسعه رابط گرافیکی

پایتون زمانی که از Tkinter استفاده می‌کند، یک راه آسان و سریع برای ایجاد برنامه‌های کاربردی GUI ارائه می‌دهد. Tkinter یک کتابخانه استاندارد GUI برای زبان برنامه‌نویسی پایتون است که یک رابط کاربری شیءگرای قدرتمند برای ابزار TK GUI ارائه می‌دهد.

ساخت برنامه GUI با استفاده از Tkinter بسیار آسان است. چیزی که شما به آن نیاز دارید، پیروی از مراحل ساده زیر است:

  • ابتدا Tkinter را ایمپورت کنید.
  • یک پنجره اصلی برای رابط گرافیکی خود بسازید.
  • یک یا چند ویجت Tkinter را اضافه کنید.
  • حلقه رویداد اصلی را برای انجام هر کاری که توسط کاربر باید انجام شود، وارد کنید.

Tkinter بیش از 15 نوع ویجت ارائه می‌دهد که شامل دکمه‌ها، برچسب‌ها و باکس‌های متنی است. هرکدام از آن‌ها به تعدادی روش مدیریت هندسی خاص دسترسی دارند که هدف آن‌ها سازمان‌دهی ویجت‌ها ازطریق ویجت والد (اصلی) است.

نکات مهم:

  • همراه با مجموعه‌ای از ویجت‌هاست که روش‌های مدیریت هندسی را پشتیبانی می‌کنند.
  • توسعه برنامه‌های GUI را آسان می‌کند.
  • یک رابط کاربری مؤثر شیءگرا را پشتیبانی می‌کند.

Six

هدف اولیه: سازگاری کتابخانه‌ها (اختلافات بین پایتون 2 و 3 را پوشش می‌دهد)

باوجود سادگی، Six یک کتابخانه قدرتمند پایتون است که برای رفع اختلافات بین نسخه‌های پایتون 2 و 3 به‌وجود آمده است. Six برای پشتیبانی از کدها به وجود آمده است که بتواند هم در پایتون 2 و هم در پایتون 3 بدون نیاز به ویرایشگر عمل کند.

استفاده از کتابخانه‌های Six به لطف اینکه به‌عنوان یک فایل منفرد پایتون ارائه‌شده‌اند، بسیار راحت است. از همین‌رو، کپی کردن کتابخانه‌ در یک پروژه پایتون به‌طرز خنده‌داری ساده است. دلیل نام‌گذاری آن (Six) درواقع ضرب پایتون 2 در 3 بوده است.

نکات مهم:

  • توابع ساده‌ای برای ساخت کد پایتون سازگار با نسخه 2 و 3 پایتون دارد.
  • تمام نسخه‌های بعد از پایتون 2.6 را پشتیبانی می‌کند.
  • استفاده از آن بسیار راحت است چون در قالب یک فایل پایتون جداگانه ارائه شده است.

aiohttp

هدف اولیه: نقش client یا server مربوط به HTTP غیرهمزمان را دارد.

یکی دیگر از کتابخانه‌های ساده اما پرکاربرد پایتون، aiohttp است که اساساً برای اینکه client و یا server مربوط به HTTP غیرهمزمان در پایتون باشد، ایجادشده است و همچنین از WebSockets پشتیبانی می‌کند.

نکات مهم:

  • یک سرور ارائه می‌دهد که قابلیت‌های زیادی دارد.
  • پشتیبانی از  WebSocketsرا فراهم می‌کند.
  • هم کلاینت‌ و هم سرور مربوط به HTTP را پشتیبانی می‌کند.

Pygame

هدف اولیه: توسعه بازی دوبعدی

هدف ثانویه: توسعه برنامه‌های کاربردی چندرسانه‌ای

Pygame یک کتابخانه رایگان و متن‌باز پایتون است که برای توسعه برنامه‌های کاربردی چندرسانه‌ای در پایتون به‌ویژه پروژه‌های بازی دوبعدی به‌وجود آمده است. از همین‌رو، هم توسعه‌دهندگان عادی و هم متخصصان به‌صورت گسترده از آن استفاده می‌کنند.

درواقع، Pygame از کتابخانه  SDL) Simple DirectMedia Layer) استفاده می‌کند. Pygame هم مثل کتابخانه SDL یک کتابخانه قابل‌حمل است و بنابراین از تعداد زیادی از پلتفرم‌ها و سیستم‌عامل‌ها پشتیبانی می‌کند.

امکان انتقال برنامه‌های کاربردی که با Pygame توسعه یافتند به دستگاه‌های اندرویدی مثل گوشی‌های هوشمند و تبلت‌ها وجود دارد. برای این منظور باید از pgs4a"" استفاده شود.

نکات مهم:

  • نیازی به openGL ندارد.
  • استفاده از CPU‌های چندهسته‌ای را آسان می‌کند.
  • نیازی به هیچ GUI برای استفاده از تمامی توابع موجود ندارد.
  • از تعداد زیادی از پلتفرم‌ها و سیستم عامل‌ها پشتیبانی می‌کند.
  • استفاده از آن ساده و راحت است.
  • از کد اسمبلی و کد C بهینه‌شده برای اجرای توابع اصلی استفاده می‌کند.

Kivy

هدف اولیه: توسعه برنامه کاربردی (با رابط‌های کاربری نوآورانه)

برای ساختن برنامه‌های کاربردی موبایل و نرم‌افزار برنامه‌های چند لمسی با یک NUI (رابط کاربری بومی)؛ توسعه‌دهندگان پایتون وابسته به کتابخانه Kivy هستند. این کتابخانه رایگان و متن‌باز پایتون تحت لایسنس MIT است و در اندروید، iOS، لینوکس، macOS و ویندوز اجرا می‌شود.

درواقع، Kivy تکامل پروژه PyMT است که شامل تمام اِلِمان‌های ضروری برای ساخت یک برنامه کاربردی شهودی چندلمسی است که به آن کتابخانه گرافیکی می‌گویند و تعداد زیادی ویجت دارد که از ویژگی‌ چندلمسی هم پشتیبانی می‌کنند، یک زبان واسط (KV) است و پشتیبانی گسترده‌ای از ورودی دارد.

Kv یا زبان Kivy یک زبان واسط است که برای توصیف تعامل و رابط کاربری به‌کار می‌رود. ساخت یک UI کامل و اضافه کردن ارتباط به آن با استفاده از Kivy بسیار ساده است. Kivy از Raspberry Pi هم پشتیبانی می‌کند.

نکات مهم:

  • امکان استفاده بومی از اکثر دستگاه‌ها، ورودی‌ها و پروتکل‌ها را دارد.
  • چند سکویی بودن، قابل اجرا بر روی سیستم عامل‌های مختلف
  • بیش از 20 ویجت قابل‌توسعه را پشتیبانی می‌کند.
  • از موتور گرافیکی که در "OpenGL ES 2" ساخته شده است، پشتیبانی می‌کند.

Bokeh

هدف اولیه: توسعه برنامه‌های کاربردی بر پایه بصری‌سازی

اهداف ثانویه: بصری‌سازی داده، علم داده

یک کتابخانه بصری‌ساز تعاملی برای زبان برنامه‌نویسی پایتون است، که اجازه می‌دهد داده‌ها با یک روش زیبا و معنی‌دار در مرورگرهای وب هم‌زمان، دیده شوند. کتابخانه بصری‌سازی داده، ساخت داشبوردها، برنامه‌های کاربردی داده و نقشه‌های تعاملی را آسان می‌کند.

علاوه بر ارائه ساختار مختصر و زیبا از گرافیک‌های متنوع، کتابخانه Bokeh قابلیت خودش درزمینهٔ تعامل سطح بالا را روی مجموعه داده‌های بسیار بزرگ، گسترش می‌دهد.

نکات مهم:

  • امکان ساخت نقشه‌های آماری پیچیده را با دستورات ساده فراهم می‌کند.
  • بصری‌سازی Bokeh را می‌توان به‌راحتی در محبوب‌ترین فریمورک‌های پایتون یعنی Django و Flask قرار داد.
  • قابلیت تولید داده‌های بصری زیبا و تعاملی
  • فرمت‌های متنوع خروجی

سخن پایانی

این بود از 10 کتابخانه معروف و محبوب پایتون. همگام با پیشرفت و رشد محبوبیت زبان برنامه‌نویسی پایتون این کتابخانه‌ها هم مرتباً بروز می‌شوند و ارتقا می‌یابند. 

آشنایی با این کتابخانه‌های عمومی، به پیشرفت شما در پایتون کمک می‌کند و از شما توسعه‌دهنده بهتری می‌سازد.

منبع

گردآوری و تالیف علیرضا معمارزاده
آفلاین
user-avatar

Student of Software Engineering, python Developer, i love programming and game

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید