Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 9

تثبيت واستيراد المكتبات باستخدام pip

Recommended resources

أهلاً بك في الدرس الأول من الوحدة الثانية: "العمل مع البيانات وواجهات برمجة التطبيقات (APIs)".

في الوحدة السابقة، بنينا معاً أساساً قوياً في برمجة بايثون، بدءاً من المتغيرات وأنواع البيانات، ومروراً بالجمل الشرطية والحلقات التكرارية، وانتهاءً بالدوال وكيفية التعامل مع الأخطاء باستخدام try/except. لقد أصبح لديك الآن صندوق أدوات برمجي يمكنك من كتابة برامج بسيطة لكنها كاملة.

اليوم، سنقوم بفتح باب جديد يتيح لبرامجنا الحصول على قدرات خارقة! حتى الآن، كانت برامجنا تعتمد فقط على ما هو مدمج في لغة بايثون نفسها (ما يسمى "المكتبة القياسية"). في هذا الدرس، ستتعلم كيف تثبّت وتستورد مكتبات خارجية باستخدام أداة pip. هذه المكتبات هي أكواد جاهزة كتبها مبرمجون آخرون حول العالم، وتسمح لنا بإضافة وظائف قوية لبرامجنا بجهد قليل، مثل الاتصال بالإنترنت، تحليل البيانات، أو حتى بناء الذكاء الاصطناعي.

هذه المهارة هي نقطة انطلاق أساسية في رحلتنا نحو بناء وكلاء الذكاء الاصطناعي، لأن هؤلاء الوكلاء يحتاجون إلى أدوات (مكتبات) للتفاعل مع العالم الرقمي، وهذا ما سنبدأ بتعلمه اليوم.

1. ما هي المكتبات الخارجية ومدير الحزم pip؟

لغة بايثون تأتي مع مجموعة من "الوحدات" (Modules) المدمجة التي تشكل المكتبة القياسية (Standard Library). لقد استخدمنا بعضها بالفعل، مثل وحدة random لتوليد أرقام عشوائية. لكن القوة الحقيقية لبايثون تكمن في مجتمعها الضخم الذي يطور وينشر آلاف المكتبات الخارجية (External Libraries) أو الحزم (Packages).

فكر في الأمر كالتالي: عندما تشتري هاتفاً جديداً، يأتي مع تطبيقات أساسية (مثل الحاسبة والتقويم). هذه هي المكتبة القياسية. ولكنك تذهب إلى متجر التطبيقات لتثبيت تطبيقات جديدة تضيف وظائف لم تكن موجودة (مثل تطبيقات التواصل الاجتماعي أو تحرير الصور). هذه هي المكتبات الخارجية.

الأداة التي نستخدمها لتصفح "متجر التطبيقات" هذا وتثبيت الحزم في بايثون تسمى pip. إنها مدير الحزم الرسمي لبايثون، ومهمتها هي تحميل، تثبيت، تحديث، وإزالة المكتبات الخارجية بسهولة.

مدير الحزم PIP في بايثون

يقدم هذا المقال من منصة "هرماش" شرحاً مبسطاً وممتازاً لمفهوم مدير الحزم pip ودوره. قراءته ستعطيك فهماً واضحاً لماهية الحزمة ولماذا نحتاج إلى pip.

اقرأ قسم "ما هو PIP؟" في بداية المقال. ركز على فهم: ماذا يعني مصطلح "حزمة" (Package). لماذا استخدام الأكواد الجاهزة (المكتبات) يوفر الوقت والجهد. الدور الذي يلعبه pip كوسيط لتسهيل هذه العملية.


2. التحقق من pip وتثبيت أول مكتبة لك

لحسن الحظ، تأتي أداة pip مثبتة بشكل تلقائي مع إصدارات بايثون الحديثة (مثل التي قمنا بتثبيتها في الدرس الأول من الوحدة الأولى). للتحقق من وجودها ومعرفة إصدارها، افتح الطرفية (Terminal) في VS Code (من قائمة Terminal -> New Terminal) واكتب الأمر التالي:

python -m pip --version

ملاحظة: إذا كنت تستخدم macOS أو Linux، قد تحتاج لاستخدام python3 بدلاً من python.

سيظهر لك ناتج مشابه لهذا، يوضح إصدار pip وإصدار بايثون المرتبط به:
pip 23.3.1 from ... (python 3.11)

الآن، لنقم بتثبيت أول مكتبة خارجية لنا. سنستخدم مكتبة requests، وهي مكتبة شهيرة جداً وبسيطة تسمح لبرامج بايثون بإرسال طلبات HTTP عبر الإنترنت، تماماً مثلما يفعل متصفح الويب الخاص بك عندما تزور موقعاً. هذه المكتبة ستكون حجر الأساس عندما نجعل وكيلنا الذكي يتصل بواجهات برمجة التطبيقات (APIs) لاحقاً.

قبل التثبيت، تأكد من أنك قمت بتفعيل البيئة الافتراضية (virtual environment) التي أنشأناها في بداية الدورة. يجب أن يظهر اسم البيئة (مثلاً (venv)) في بداية سطر الأوامر في الطرفية. هذا يضمن أن المكتبات التي نثبتها تكون معزولة داخل مشروعنا الحالي فقط.

لتثبيت مكتبة requests، اكتب الأمر التالي في الطرفية واضغط Enter:

pip install requests

سيقوم pip بالاتصال بالإنترنت، تحميل مكتبة requests وأي مكتبات أخرى تعتمد عليها (تسمى التبعيات Dependencies)، ثم تثبيتها في بيئتك الافتراضية.

Installing Packages With pip: Python Basics

يوضح هذا الفيديو من قناة Real Python بشكل عملي خطوات تثبيت حزمة باستخدام pip. مشاهدته ستساعدك على تصور ما يحدث خلف الكواليس عند تشغيل أمر pip install.

شاهد المقطع من الدقيقة 17:11 إلى 20:11. ركز على النقاط التالية: الأمر المستخدم لتثبيت حزمة requests. الناتج الذي يظهر في الطرفية، ولاحظ كيف يقوم pip بتثبيت حزم أخرى (التبعيات). كيفية استخدام أمر pip show requests لعرض تفاصيل عن الحزمة المثبتة والتبعيات الخاصة بها.


3. استيراد واستخدام المكتبة في الكود

الآن بعد أن أصبحت مكتبة requests مثبتة في بيئتنا، كيف نستخدمها داخل ملف بايثون؟ تماماً كما فعلنا مع الوحدات المدمجة، نستخدم الكلمة المفتاحية import.

  1. أنشئ ملف بايثون جديداً، وليكن اسمه web_request.py.

  2. في أعلى الملف، اكتب السطر التالي لاستيراد المكتبة:

    import requests
    

    بهذا السطر، أنت تخبر بايثون أنك تريد استخدام الوظائف الموجودة في مكتبة requests داخل هذا الملف.

  3. الآن، لنجرب استخدامها. سنقوم بإرسال طلب GET بسيط إلى موقع Google ونطبع حالة الاستجابة. انسخ الكود التالي في ملفك:

    import requests
    
    # عنوان الموقع الذي نريد الاتصال به
    url = "https://www.google.com"
    
    print(f"Connecting to {url}...")
    
    try:
        # نستخدم دالة get من مكتبة requests لإرسال الطلب
        response = requests.get(url, timeout=5) # timeout يمنع البرنامج من التعليق لأكثر من 5 ثوان
    
        # response.status_code هو رقم يخبرنا بنتيجة الطلب
        # 200 تعني "الكل تمام" (OK)
        if response.status_code == 200:
            print("Successfully connected to Google!")
            print("Status Code:", response.status_code)
        else:
            print("Connection was successful, but something is wrong.")
            print("Status Code:", response.status_code)
    
    except requests.exceptions.RequestException as e:
        # هذا الجزء سيعمل إذا فشل الاتصال (مثلاً، لا يوجد انترنت)
        print("Failed to connect to the server.")
        print("Error:", e)
    
    

    لاحظ كيف استخدمنا try...except من الدرس السابق. هذا مثال رائع على أهمية معالجة الأخطاء، فالتعامل مع الشبكات والإنترنت مليء بالأخطاء المحتملة (مثل انقطاع الاتصال).

عند تشغيل هذا الكود، إذا كان جهازك متصلاً بالإنترنت، يجب أن ترى رسالة نجاح مع رمز الحالة 200.

كيفية استيراد الوحدات في بايثون 3

تقدم هذه المقالة من أكاديمية حسوب شرحاً وافياً لكيفية عمل تعليمة import. ستتعلم منها ليس فقط كيفية الاستيراد الأساسي، بل أيضاً طرقاً أخرى ستصادفها كثيراً في المستقبل.

اقرأ الأقسام التالية لفهم أعمق لعملية الاستيراد: استيراد الوحدات: لفهم بنية import module وكيفية الوصول للدوال باستخدام الصياغة النقطية (e.g., requests.get). استخدام الصياغة from ... import: لتعلم كيفية استيراد دالة معينة مباشرة من الوحدة. الأسماء المستعارة في الوحدات: لفهم كيفية استخدام as لإعطاء اسم مختصر للمكتبة (e.g., import requests as req).


4. إدارة الحزم المثبتة

مع الوقت، قد تحتاج إلى معرفة ما هي الحزم المثبتة في بيئتك أو إزالة حزمة لم تعد بحاجة إليها. pip يجعل هذا سهلاً.

  • لعرض قائمة بجميع الحزم المثبتة في بيئتك الحالية، استخدم الأمر:

    pip list
    

    ستلاحظ وجود requests والتبعيات الخاصة بها في القائمة.

  • لإزالة حزمة، استخدم الأمر pip uninstall متبوعاً باسم الحزمة. لإزالة requests على سبيل المثال:

    pip uninstall requests
    

    سيطالبك pip بتأكيد العملية قبل الحذف.

اختبر فهمك! توجد مكتبة ممتعة تسمى `pyjokes` تستخدم لتوليد نكات عشوائية للمبرمجين. مهمتك هي:
1. تثبيت هذه المكتبة باستخدام `pip`. 2. كتابة برنامج بايثون يستورد المكتبة ويطبع نكتة واحدة.
*تلميح: بعد تثبيت المكتبة، يمكنك استخدام الدالة `pyjokes.get_joke()` للحصول على نكتة.*
أظهر الحل

الخطوة 1: التثبيت في الطرفية (Terminal)

pip install pyjokes

الخطوة 2: الكود في ملف بايثون

import pyjokes

# احصل على نكتة عشوائية
joke = pyjokes.get_joke()

# اطبع النكتة
print(joke)

كل مرة تشغل فيها هذا الكود، ستحصل على نكتة مختلفة!


ملخص الدرس

في هذا الدرس، خطونا أولى خطواتنا خارج عالم بايثون الأساسي إلى نظامه البيئي الواسع.

أهم النقاط التي تعلمناها:

  • المكتبات الخارجية (الحزم) هي أكواد جاهزة تضيف وظائف قوية لبرامجنا.
  • pip هو مدير الحزم الذي نستخدمه لتثبيت (pip install)، وإزالة (pip uninstall)، وعرض (pip list) هذه المكتبات.
  • يجب تفعيل البيئة الافتراضية دائماً قبل تثبيت أي حزمة للحفاظ على المشاريع منظمة ومعزولة.
  • بعد تثبيت الحزمة، نستخدم تعليمة import في ملف البايثون الخاص بنا لجعل وظائفها متاحة للاستخدام.

ما التالي؟

الآن بعد أن أصبحت قادراً على تزويد برامجك بأدوات جديدة، نحن جاهزون للبدء في التعامل مع البيانات الفعلية. في الدرس القادم، سنتعلم "قراءة وكتابة الملفات النصية وملفات JSON". سنستخدم المهارات التي اكتسبناها اليوم لتثبيت مكتبات قد تساعدنا، وسنركز على صيغة JSON، لأنها اللغة المشتركة التي تتحدث بها معظم واجهات برمجة التطبيقات (APIs) على الإنترنت.