فهرست مطالب
کتابخانههای پایتون، بیتردید یکی از مزایای برنامهنویسی با این زبان جذاب و قدرتمند به شمار میروند. تعدد بالا و کاربردهای گستردهٔ این کتابخانهها، برای برنامهنویسان موهبت بزرگی محسوب میشود و میتواند سرعت عمل آنها را چندبرابر کند. چون در طی این سالها، توابع، کلاسها، ماژولها و ابزارهای مختلف پایتون، یعنی چیزی در حدود بیشمار خط کد، به پختگی و تکامل بالایی رسیدهاند. و از آنجایی که جامعهٔ پایتون مثل سایر نرمافزارهای اُپنسُرس یا منبعباز، ماهیتا سخاوتمند و لوتیمرام است، تمامی این ابزارها، در قالب بیشمار کتابخانه پایتون با ساکنین سیاره به اشتراک گذاشته شده است. پس اگر در برنامهنویسی با پایتون جدی هستید، این مطلب را دریابید که قصد داریم علاوه بر مفهوم کتابخانه در پایتون، از نحوهٔ نصب کتابخانه پایتون صحبت کنیم.
مفهوم کتابخانه در پایتون به چه معناست؟
کتابخانه پایتون، درست مثل یک کتابخانهٔ عادی است. با این تفاوت که به جای کتابهای جور و واجور، محلی برای نگهداری قطعههای کد است. این کدها در قالب پکیجها و ماژولها قرار دارند و از پیش کامپایل شدهاند و میتوانند با یک کاربرد مشخص، در بدنهٔ پروژههای مختلف به کار بروند. البته یک کتابخانه پایتون، شامل آیتمهای دیگری هم هست. از اسناد و متون راهنما گرفته تا دادههای پیکربندی (Configuration) تا کلاسها و متغیرهای از پیش تعریفشده، همگی در این کتابخانههای دیجیتال پیدا میشوند.
گفتیم که یک کتابخانه پایتون، از پکیجها (Packages) و ماژولهای (Modules) مختلف نگهداری میکند. دقت کنید که هر از گاهی به عنوان جایگزین عبارت کتابخانه پایتون، از عبارت پکیج هم استفاده میشود و چیز متفاوتی در این بین وجود ندارد. پکیجها خودشان از تعداد زیادی ماژولها و پکیجهای کوچکتر تشکیل شدهاند و اگر آنها را با عنوان کتابخانه نام ببریم، مرتکب اشتباه نشدهایم.
و اما ماژولها فایلهایی با پسوند py. هستند که کدهای پایتون رادر بر میگیرند و میتوان در برنامههای مختلف از آنها استفاده کرد. در واقع یک کتابخانه، از تعداد زیادی ماژول مختلف و کاربردی تشکیل شده که کار برنامهنویسی را برای کاربران آسانتر و سریعتر میکنند. پس در نهایت میتوان گفت که کتابخانه پایتون، یک مفهوم کلی است که در برگیرندهٔ پکیجها، ابزارها و ماژولهاست. و تمام این موارد، کدهایی هستند که ممکن است بارها و بارها به آنها نیاز پیدا کنیم و مجبور نیستیم هربار، آنها را از اول بنویسیم.
کتابخانه استاندارد پایتون چیست؟
همانطور که در مقالهٔ پایتون چیست؟ اشاره شد، پایتون یک زبان منبعباز یا Open-Source است و هرکسی میتواند به امکانات و ابزارهای آن اضافه کند. بنابراین خود شما هم میتوانید در آینده، مجموعهای از کدهای بدردبخور و پرکاربردی را که در طی سالها جمعآوری کرده یا نوشتهاید، به صورت یک پکیج یا کتابخانه در بیاورید و با دیگران به اشتراک بگذارید. اما به غیر از این حالت، خود پایتون هم یک سری کتابخانهٔ استاندارد دارد که برای طیف وسیعی از کارها، از هوش مصنوعی و ماشینلرنینگ گرفته، تا آنالیز عددی و ویژوالیزیشن و غیره به کار میآیند و جوابشان را پس دادهاند.
طبیعتا این کتابخانهها از ماژولهای داخلی، استاندارد یا به قولی Built-in پایتون تشکیل شدهاند و بد نیست اشاره کنیم که اکثر این کتابخانهها، با زبان قدرتمند C بوجود آمدهاند. ماژولهای اصلی پایتون که آنها را با عنوان Core Modules یا ماژولهای هستهٔ پایتون هم میشناسیم، متشکل از ۲۰۰ مورد هستند که به شکلی کامل با هم هماهنگ و سازگارند و عصای دست برنامهنویسان پایتون هستند. در این حد که بدون همین کتابخانههای استاندارد، امکان دسترسی به برخی از امکانات یا به قول برنامهنویسها، فانکشنالیتییهای پایتون وجود ندارد.
اما غیر از این کُر-ماژولها یا کتابخانههای اساسی پایتون، یک سری کتابخانه فوقالعاده کاربردی هستند که زندگی را به کام برنامهنویسان شیرین کردهاند. پس اجازه دهید تا چند نمونه از آنها را مثال بزنیم تا کاربردهای یک کتابخانه پایتون، برایمان ملموستر شود.
10 مورد از کتابخانههای مهم پایتون
مواردی که در ادامه ذکر میکنیم فقط مشتی نمونهٔ خروار هستند. چون تعداد کتابخانههای بدردبخور پایتون بسیار بیش از این حرفهاست. پس در وهلهٔ اول، باید ببینیم قصد انجام چه پروژهای را داریم. آیا هدف طراحی وب است، یا ساخت یک بازی دو بعدی یا یک سیمولاتور هوشمصنوعی؟
TensorFlow
تنسُرفلو یک کتابخانه پایتون منبعآزاد و محصول همکاری گوگل و Brain Team است. این کتابخانه برای محاسبات سطحبالا و الگوریتمهای یادگیری ماشین و یادگیری عمیق به کار میرود. همچنین دانشمندان و پژوهشگران، برای حل مسائل پیچیدهٔ ریاضی و فیزیک از آن استفاده میکنند.
Matplotlib
یکی از سرشناسترین کتابخانههای منبعباز پایتون برای استفاده در تحلیل دادههای عددی (Numerical Data Analysis) است. مثلا اگر یک شرکت مالی و سرمایهگذاری داشته باشید، متپلاتلیب زندگی شما را آسانتر میکند و میتواند دادههای خشک و بیروح را به سادهترین و واضحترین شکل، در قالب چارتها و گرافها و نمودارهای رنگ و وارنگ به تصویر بکشد.
Pandas
پانداز هم جزو لایبرریهای محبوب پایتون در حوزهٔ علم داده است. پانداز هم مثل دو همتای قبلی منبعباز است، به صورت تخصصی در یادگیری ماشین به کار میرود، ابزارهای تحلیلی قدرتمندی دارد و استفاده از ساختارهای داده یا دیتا استراکچِرهای پیچیده و انعطافپذیر آن، کار را برای پژوهشگران و فعالین حوزهٔ داده راحت میکند. عملیات پیچیدهای مثل Sorting يا Re-indexting یا کارهایی مثل Concatenation یا Conversion که میتوانید در دوره پایتون ایرانلرن با آنها آشنا شوید، با این کتابخانه پایتون به سادگی مدیریت میشوند.
Numpy
نامپای، مخففی از عبارت Numerical Python است و کاربردش از اسمش پیداست. این کتابخانه جزو مرسومترین ابزارهای پایتون برای ماشین لرنینگ به شمار میرود و کار کردن با ماتریسهای بزرگ و دادههای چندبعدی را به مراتب سادهتر میکند. نامپی توابع ریاضی بدردبخوری دارد و حتی کتابخانهٔ پر و پیمانی مثل TensorFlow برای انجام برخی از محاسبات، دست به دامن ابزارهای Numpy میشود.
SciPy
سایپای هم اسم مخففی از عبارت Scientific Python است و برای محاسبات علمی سطح بالا به کار میرود. این کتابخانه در واقع یکی از مشتقات Numpy است و برای حل معادلات و محاسبات پیچیده، به صورت هماهنگ و موازی با آن عمل میکند. سایپای در برخی عملیات مثل مرتبسازی یا همان Sorting دادهها، یک سری امکانات اضافه بر سازمان دارد و بیشتر به درد اپنویسها و مهندسین میخورد.
Scrapy
این کتابخانه منبعباز پایتون، مخصوص استخراج اطلاعات و محتویات از وبسایتهاست. بنابراین برای کسانی که نیاز به دانلودهای مفصل و پرتعداد دارند، به شدت کارامد است و سرعت وبنوردی یا به اصطلاح Web-Crawling خیرهکنندهای دارد. از اِسکرَپی میتوان برای دیتاماینیگ و سایر کارهای اتوماسیون مرتبط با داده استفاده کرد.
Scikit-learn
رسیدن پایتون به جایگاه قویترین زبان برنامهنویسی برای کار با دادههای بزرگ و پیچیده، به این راحتیها بدست نیامده. این دستاورد، مدیون امکانات متعدد پایتون برای تحلیل و دستکاری دادههاست و کتابخانهٔ سایکیتلرن هم یکی از همان امکانات است. علاقمندان به ماشینلرنینگ از این کتابخانه نهایت استفاده را میبرند و هماهنگی کامل آن با دو کتابخانهٔ محبوب دیگر یعنی SciPy و Numpy مزیت بزرگی محسوب میشود.
PyGame
همانطور که از اسمش پیداست به درد علاقمندان به بازیسازی میخورد. این کتابخانه پایتون در اصل، یک رابط کاربری یا اینترفیس ساده است که کار با Standard Directmedia Library یا SDL را برای ریزهکاریهای ضروری در پروسهٔ بازیسازی فراهم میکند. کارهایی مثل رد و بدل کردن عناصر گرافیکی (مستقل از اینکه روی چه کنسول یا پلتفرمی قرار داریم) یا صدا یا دریافت ورودی یا input از کاربر (ورودیهایی که از Gamepad یا ماوس و کیبرد میآیند) از جمله این موارد هستند. پس اگر به بازیسازی علاقمندید، آموزش این کتابخانه را از قلم نندازید.
Pytorch
پایتُرچ بزرگترین کتابخانه پایتون برای ماشین لرنینگ است. بیشمار API بدردبخور دارد، محاسبات پیچیده را خیلی سریع و روان انجام میدهد و استفادهٔ بهینهای از قدرت GPU یا پردازندهٔ کارت گرافیکی انجام میدهد. پایترچ در رفع اشکال اپلیکیشنها و نرمافزارهایی مبتنی بر شبکههای عصبی (Neural Networks) هم به کار میآید.
PyBrain
کتابخانهٔ پایبرین ترکیبی از عبارت طول و دراز Python Based Reinforcement Learning, Artificial Intelligence and Neural Networks است. گفته میشود که این کتابخانه پایتون، مناسب افراد تازهکار در قلمروی ماشینلرنینگ است و برای انجام کارهای مختلف در این حوزه، الگوریتمهای سریع و زودهضمی را برای برنامهنویسان مبتدی فراهم میکند.
نحوه استفاده از کتابخانه در پایتون
یکی از بهترین شیوههای کدنویسی برای برنامههای بزرگ و مفصل، توجه کامل به ماژولار بودن کد است. یک کد ماژولار، کدی است که از قطعات مختلف و مستقل از هم تشکیل بشود. درست مثل یک متن طولانی که باید به قطعات و پاراگرافهای مشخص تفکیک شده باشد و در عین حال، همهٔ آنها به یک کل منسجم مرتبط باشند. همین مفهوم در کدنویسی هم کاملا حیاتی است. هم خوانایی کد بالا میرود، و هم امکان استفاده از قطعات مختلف کد در سایر برنامهها فراهم میشود.
این قطعات همان ماژولهایی هستند که در ابتدای مطلب اشاره کردیم. وقتی یک کتابخانه پایتون را نصب میکنیم، به تمام ابزارها و ماژولهای داخل آن دسترسی داریم و میتوانیم با یک دستور ساده، این ماژولها را فراخوانی کنیم. البته بهتر اینست که برای ماژولها، از عبارت بارگذاری استفاده کنیم. در هر حال دستور مورد نظر import است و نحوهٔ استفاده از آن، چیزی شبیه به مثال زیر است:
# Importing math library import math A = 16 print(math.sqrt(A))
خروجی مثال بالا برابر است با: 4.0
در مثال بالا، یکی از کتابخانههای پایتون یعنی کتابخانهٔ ریاضی (Math) را ایمپرت کردیم تا بتوانیم از یکی از متدهای آن یعنی sqrt که کارش محاسبهٔ جذر اعداد است، دسترسی پیدا کنیم. در تعاریف برنامهنویسی شیگرا، یاد میگیریم که متدها یا Methods توابعی هستند که به یک کلاس خاص تعلق دارند.
حالا که با نحوهٔ import کل یک کتابخانه پایتون آشنا شدیم، بهتر است کمی در جزئيات ریزتر شویم و یک کار بهصرفهتر هم یاد بگیریم. بارگذاری کل کتابخانه، بخش بیشتری از حافظه را اشغال میکند و ما به عنوان یک برنامهنویس، باید همیشه به بهینه بودن و جمع و جور بودن کد اهمیت بدهیم. بنابراین میتوانیم به جای تمام ابزارها و امکانات یک کتابخانه پایتون، فقط بخشی از آنرا که نیاز داریم import کنیم. به مثال زیر توجه کنید:
# Importing specific items from math import sqrt, sin A = 16 B = 3.14 print(sqrt(A)) print(sin(B))
خروجی مثال بالا برابر است با:
4.0
0.0015926529164868282
راهنمای نصب کتابخانه در پایتون با PIP
تا اینجای کار با ماهیت کتابخانههای پایتون آشنا شدیم، تعدادی از آنها را معرفی کردیم و نحوهٔ Import کردن یک کتابخانه یا بخشی از آن را یاد گرفتیم. حالا یک مرحله عقبتر میرویم تا با نحوه نصب کتابخانه در پایتون آشنا شویم. مرسومترین و سادهترین روش نصب کتابخانه، استفاده از ابزار مدیریت پکیج یا PIP است. پکیج PIP یک ابزار بسیار کاربردی، برای مدیریت سایر پکیجهاست. با این ابزار که از آن به عنوان Package Manager هم یاد میشود، میتوان با خیال راحت کتابخانههای پایتون و تمام متعلقات ضروری آنها را نصب کرد و چیزی را از قلم ننداخت. خوشبختانه این برای نسخههای جدیدتر پایتون ۳ (از نسخهٔ ۳.۴ به بعد) به صورت پیشفرض PIP را دارند و نصب آن، همراه با نصب خود پایتون انجام میشود.
۱) باز کردن پنجره Command Prompt
کامند پرامپت همان ترمینال دستور یا خط فرمان ویندوز است که به دو طریق میتوان به آن دسترسی پیدا کرد. یک اینکه با میانبر Win+R پنجرهٔ Run را باز کنیم و داخل آن عبارت cmd را تایپ نماییم. اما روش دوم و سادهتر، جستجوی عبارت Command Prompt در سرچباکس ویندوز است. فقط یادتان باشد که روی گزینهٔ Run as Administrator کلیک کنید تا بعدها مشکلی ایجاد نشود.
حالا دستور \cd را در قسمت خط فرمان تایپ کنید و با زدن Enter آنرا اجرا نمایید. دلیل اجرای این دستور، خروج از مسیر کنونی و دسترسی به روت درایو C یا درایو ویندوز است. حالا باید چنین چیزی را در کامند پرامپت ملاحظه کنید.
C:\>
۲) پیدا کردن محل اسکریپتهای پایتون در سیستم کاربر
حالا باید ببینیم که اسکریپتهای (Scripts) پایتون را در کجای سیستم خود ذخیره کردهایم تا از آدرس آن استفاده کنیم. پوشهٔ اسکریپتها معمولا در محل نصب پایتون قرار دارند و آدرسشان چیزی شبیه به مثال زیر است:
C:\Users\IranLearn\AppData\Local\Programs\Python\Python39\Scripts
بدیهی است که به جای «IranLearn» اسم User شما قرار خواهد گرفت.
حالا این آدرس را در مقابل دستور cd کپی میکنیم تا در مسیر مربوطه قرار بگیریم.
C:\>cd C:\Users\IranLearn\AppData\Local\Programs\Python\Python39\Scripts
اگر مشکلی در کار نباشد، آدرس جاری، به آدرس پوشهٔ Scripts تغییر میکند و حالا نوبت نصب کتابخانهٔ دلخواه است.
۳) نصب کتابخانه در پایتون با دستور pip
کار شما تقریبا به اتمام رسیده است. فقط دستور زیر را با اسم کتابخانهٔ دلخواه اجرا کنید و باقی ماجرا را به نظاره بنشینید.
pip install package_name
برای این مثال، از کتابخانهٔ معروف Pandas استفاده میکنیم. پس دستوری مثل این را خواهیم داشت.
C:\Users\IranLearn\AppData\Local\Programs\Python\Python39\Scripts>pip install pandas
پس از اجرای دستور بالا و انجام مراحل دانلود و نصب کتابخانهٔ مورد نظر، پیغامی شبیه به این ملاحظه خواهید کرد:
Successfully installed pandas-1.3.5 python-dateutil-2.8.2 pytz-2022.7 six-1.16.0
دقت کنید که در نسخههای جدید، امکانش هست که pip به طور خودکار یکسری پکیج و کتابخانه دیگر هم دانلود و نصب کند. پس نگران نشوید و به pip اطمینان کنید.
از کجا بفهمیم که نصب کتابخانه در پایتون انجام شده؟
برای محکمکاری بد نیست که از نصب کتابخانه مورد نظر در پایتون اطمینان پیدا کنیم. در این مثال Pandas را نصب کردیم و حالا کافیست که محیط Python IDLE را باز کنیم. برای اینکار در سرچباکس ویندوز کلمهٔ Python یا IDLE را تایپ و گزینهٔ درست را انتخاب کنید.
در این مرحله یک ویرایشگر برای شما باز میشود و فقط کافیست که دستور import pandas را در آن اجرا کنید.
>>> import pandas
اگر هیچ پیغام خطایی دریافت نکردید، به این معناست که کتابخانه پایتون شما نصب شده و آماده به کار است.
از کجا بدانیم چه کتابخانههایی در سیستم نصب شده؟
برای اینکار دستور pip freeze را اجرا کنید که خروجی آن چیزی شبیه به مثال زیر میشود:
C:\Users\IranLearn\AppData\Local\Programs\Python\Python39\Scripts>pip freeze
numpy==1.21.6
pandas==1.3.5
python-dateutil==2.8.2
pytz==2022.7
six==1.16.0
روش حذف یا Uninstall یک پکیج یا کتابخانه در پایتون چیست؟
برای حذف یک پکیج یا کتابخانه پایتون از دستور زیر استفاده میکنیم.
pip uninstall package_name
بدون کتابخانه های پایتون، هرگز!
مستقل از اینکه بخواهیم به صورت تفننی کد بزنیم یا به عنوان یک برنامهنویس حرفهای فعالیت کنیم، استفاده از ابزارها، پکیجها، فریمورکها و کتابخانه های پایتون، سرعت و بازدهیمان را به مراتب بیشتر میکنند. خصوصا وقتی برای یک درآمد درخور توجه دورخیز کرده و در حرفهای شدن در مسیر برنامهنویسی جدی باشیم.
چون در اینصورت، انجام پروژهٔ چند مشتری به صورت همزمان، بخشی از زندگی روزمرهمان خواهد بود. موردی که یکی از نقاط قوت و جذابیتهای مهارت برنامهنویسی است. اما داشتن چند مشتری همزمان، مساویست با کار زیاد و فرصت کم و داشتن چند ددلاین مختلف. پس امیدواریم که با بهرهبرداری از کتابخانه های پایتون زمانتان را به بهترین شکل مدیریت کنید و به یک برنامهنویس سریع و تمامعیار تبدیل شوید. نیرویی که در بازار کار امروز ایران (و حتی خارج از ایران) نیروی چندان در دسترسی نیست.