الوحدات في Python: import و pip والمكتبات الخارجية
لا أحد يكتب كل شيء من الصفر. المبرمج المحترف يعتمد على كود جاهز ومجرَّب كتبه غيره، ويركّز هو على فكرة برنامجه. في هذا الدرس ستتعلم كيف تستدعي الوحدات (Modules) الجاهزة في Python، وكيف تصنع وحدتك الخاصة، وكيف تثبّت مكتبات من الإنترنت بأداة pip.
ما هي الوحدة؟
Section titled “ما هي الوحدة؟”الوحدة ببساطة ملف Python فيه دوال ومتغيرات جاهزة للاستخدام. تخيّل مطبخاً فيه أدراج كثيرة: درج للسكاكين، ودرج للملاعق. أنت لا تخرج كل الأدوات على الطاولة، بل تفتح الدرج الذي تحتاجه فقط. والكلمة import هي التي تفتح الدرج:
import math
print(math.sqrt(49))print(math.pi)print(math.floor(7.9))print(math.ceil(7.1))7.03.14159265358979378بعد import math نصل إلى أي شيء داخل الوحدة بكتابة اسمها ثم نقطة ثم اسم الدالة. هنا sqrt تحسب الجذر التربيعي، و floor تقرّب إلى الأسفل، و ceil تقرّب إلى الأعلى.
Python تأتي ومعها مجموعة كبيرة من الوحدات تسمى المكتبة القياسية (Standard Library)، وقد استخدمت منها random في مشروع لعبة التخمين.
طرق الاستيراد
Section titled “طرق الاستيراد”إذا كنت تحتاج دالة أو اثنتين فقط، استوردهما بالاسم بالصيغة from ... import، وعندها تستخدمهما مباشرة دون اسم الوحدة:
from math import sqrt, pi
print(sqrt(81))print(round(pi, 2))9.03.14وإذا كان اسم الوحدة طويلاً، أعطها اسماً مختصراً بالكلمة as:
import statistics as st
grades = [70, 85, 90, 85, 100]print(st.mean(grades))print(st.median(grades))print(st.mode(grades))868585الوحدة statistics فيها دوال إحصائية: mean للمتوسط، و median للقيمة الوسطى، و mode للقيمة الأكثر تكراراً.
اصنع وحدتك الخاصة
Section titled “اصنع وحدتك الخاصة”عندما يكبر برنامجك، لا تضع كل الكود في ملف واحد. قسّمه إلى ملفات، كل ملف مسؤول عن مهمة. وأي ملف .py تكتبه هو وحدة يمكن استيرادها! أنشئ ملفاً اسمه shapes.py:
def rectangle_area(width, height): return width * height
def circle_area(radius): return 3.14159 * radius ** 2ثم أنشئ في المجلد نفسه ملفاً آخر اسمه main.py يستورده:
import shapes
print(shapes.rectangle_area(4, 5))print(shapes.circle_area(2))2012.56636لاحظ أننا كتبنا import shapes بدون الامتداد .py. وعند تشغيل main.py تبحث Python عن shapes.py في المجلد نفسه أولاً.
السطر الغامض: __name__
Section titled “السطر الغامض: __name__”كثيراً ما سترى هذا الشرط في آخر ملفات Python:
def rectangle_area(width, height): return width * height
if __name__ == "__main__": print("تجربة:", rectangle_area(2, 3))المتغير __name__ تضبطه Python تلقائياً: تكون قيمته "__main__" إذا شغّلت الملف مباشرة، وتكون اسم الوحدة إذا استورده ملف آخر. فالكود داخل هذا الشرط يعمل عندما تشغّل shapes.py نفسه لتجربته، ولا يعمل عندما يستورده main.py. بهذه الطريقة يصلح الملف الواحد للأمرين.
المكتبات الخارجية و pip
Section titled “المكتبات الخارجية و pip”المكتبة القياسية كبيرة، لكن العالم أكبر. على موقع PyPI (وعنوانه pypi.org) مئات الآلاف من المكتبات المجانية التي كتبها مبرمجون من كل أنحاء العالم: لتحليل البيانات، وبناء المواقع، والألعاب، والذكاء الاصطناعي.
لتثبيت أي مكتبة منها نستخدم أداة اسمها pip، وهي تأتي مع Python. تخيّلها مثل متجر التطبيقات في هاتفك، لكن للمكتبات. اكتب في الطرفية (وليس داخل ملف Python):
pip install requestsهذا الأمر ينزّل مكتبة requests المشهورة لجلب البيانات من الإنترنت، ويثبّتها على جهازك. وبعدها تستطيع كتابة import requests في أي برنامج.
وهذه أهم أوامر pip:
| الأمر | وظيفته |
|---|---|
pip install اسم_المكتبة |
تثبيت مكتبة |
pip install --upgrade اسم_المكتبة |
تحديثها لأحدث إصدار |
pip uninstall اسم_المكتبة |
حذفها |
pip list |
عرض كل المكتبات المثبتة |
pip show اسم_المكتبة |
معلومات عن مكتبة مثبتة |
جرّب بنفسك
Section titled “جرّب بنفسك”أنشئ ملفاً اسمه greetings.py فيه دالتان: morning(name) تعيد «صباح الخير يا» ثم الاسم، و night(name) تعيد «تصبح على خير يا» ثم الاسم. ثم أنشئ main.py يستورد الوحدة ويستدعي الدالتين:
صباح الخير يا سارةتصبح على خير يا سارةثم جرّب في الطرفية الأمر pip list لترى ما هو مثبّت على جهازك.
أخطاء شائعة
Section titled “أخطاء شائعة”- تسمية ملفك باسم وحدة موجودة: إذا سمّيت ملفك
random.pyأوmath.pyفستستورد Python ملفك أنت بدلاً من الوحدة الأصلية، وتظهر أخطاء غريبة. اختر أسماء مختلفة. - كتابة الامتداد:
import shapes.pyخطأ. اكتبimport shapesفقط. - كتابة
pip installداخل ملف Python: هذا أمر للطرفية وليس كود Python، وسيعطيكSyntaxError. - استخدام مكتبة قبل تثبيتها: ستظهر
ModuleNotFoundError، وحلها تثبيت المكتبة بـpip.
اختبر نفسك
Section titled “اختبر نفسك”سؤال
بعد كتابة from math import sqrt، كيف تستدعي الدالة؟
الصيغة from ... import تستورد الاسم نفسه، فتستخدمه مباشرة دون اسم الوحدة.
سؤال
أين تكتب الأمر pip install requests؟
pip أداة تعمل من الطرفية (سطر الأوامر)، وليست جزءاً من لغة Python نفسها.
الخلاصة
Section titled “الخلاصة”- الوحدة ملف Python فيه دوال جاهزة، ونستدعيها بـ
import. from وحدة import اسمتستورد أسماء محددة، وasتعطي اسماً مختصراً.- أي ملف
.pyتكتبه يمكن استيراده من ملف آخر في المجلد نفسه. - الشرط
if __name__ == "__main__":يعمل فقط عند تشغيل الملف مباشرة. pip installتثبّت مكتبات خارجية من موقع PyPI.