إدارة الحزم والبيئات الافتراضية في بايثون

إدارة الحزم والبيئات الافتراضية في بايثون

46 دقيقة
١٣ يونيو ٢٠٢٦
المرحلة 1 من 6

ما هي الحزم والبيئات الافتراضية؟

الدرس العاشر: إدارة الحزم والبيئات الافتراضية (Packages & Virtual Environments)

في الدروس السابقة، كنا نستخدم مكتبات بايثون المدمجة فقط. لكن في المشاريع الحقيقية، ستحتاج إلى استخدام مكتبات خارجية مثل FastAPI أو Flask أو Pandas. هنا يأتي دور إدارة الحزم والبيئات الافتراضية. في هذا الدرس، سنتعلم كيف نثبت الحزم، وكيف ننشئ بيئة افتراضية لعزل مشروعنا عن بقية المشاريع.

ما هي الحزمة (Package)؟

الحزمة هي مجموعة من الملفات والوحدات (modules) التي تقدم وظائف جاهزة. بدلاً من كتابة كل شيء من الصفر، يمكنك تثبيت حزمة واستخدام دوالها مباشرة. مثال: حزمة requests تسمح لك بإرسال طلبات HTTP بسهولة.

ما هي البيئة الافتراضية (Virtual Environment)؟

البيئة الافتراضية هي مساحة معزولة داخل نظامك، تحتوي على نسخة خاصة من بايثون ومكتباتها. لماذا نحتاجها؟ تخيل أنك تعمل على مشروعين: الأول يحتاج إصدار 1.0 من مكتبة requests، والثاني يحتاج إصدار 2.0. بدون بيئة افتراضية، ستتعارض الإصدارات. البيئة الافتراضية تحل هذه المشكلة.

أداة pip: مدير الحزم

pip هي الأداة الرسمية لتثبيت وإدارة الحزم في بايثون. تأتي مثبتة تلقائياً مع بايثون 3.4 فما فوق. يمكنك التحقق من وجودها بكتابة الأمر التالي في الطرفية (Terminal):

pip --version

إذا ظهر رقم الإصدار، فأنت جاهز. وإلا، يمكنك تثبيتها من الموقع الرسمي.

خطوات إنشاء بيئة افتراضية

لنبدأ عملياً. سننشئ مجلداً للمشروع، ثم ننشئ بيئة افتراضية داخله.

  1. إنشاء مجلد المشروع:
    mkdir my_project
    cd my_project
  2. إنشاء البيئة الافتراضية:
    python -m venv venv

    الأمر الأول python -m venv يستخدم وحدة venv المدمجة. الأمر الثاني venv هو اسم المجلد الذي سيحتوي على البيئة. يمكنك تسميته .venv أو env حسب تفضيلك.

  3. تفعيل البيئة الافتراضية:
    • على نظام Windows (Command Prompt):
      venv\Scripts\activate
    • على نظام macOS/Linux:
      source venv/bin/activate

    بعد التفعيل، ستلاحظ ظهور اسم البيئة بين قوسين في بداية سطر الأوامر، هكذا: (venv). هذا يعني أنك الآن داخل البيئة الافتراضية.

تثبيت الحزم داخل البيئة

الآن وقد فعلنا البيئة، لنثبت حزمة requests كمثال:

pip install requests

سيقوم pip بتحميل الحزمة وتثبيتها داخل البيئة الافتراضية فقط. يمكنك تثبيت عدة حزم في نفس الأمر:

pip install requests numpy pandas

مثال عملي: استخدام حزمة requests

لنكتب ملف بايثون بسيطاً يستخدم الحزمة التي ثبتناها. أنشئ ملفاً باسم test_request.py داخل مجلد المشروع:

import requests

response = requests.get('https://api.github.com')
print(f"Status Code: {response.status_code}")
print(f"Response JSON: {response.json()}")

شغل الملف باستخدام الأمر:

python test_request.py

سترى رسالة نجاح تعرض حالة الاتصال. إذا لم تثبت الحزمة، سيظهر خطأ ModuleNotFoundError.

إدارة قائمة الحزم: ملف requirements.txt

عند مشاركة مشروعك مع الآخرين، تحتاج إلى إخبارهم بالحزم المطلوبة. الحل هو إنشاء ملف requirements.txt يحتوي على أسماء الحزم وإصداراتها. لإنشائه تلقائياً:

pip freeze > requirements.txt

سيكون محتوى الملف مشابهاً لهذا:

certifi==2024.2.2
charset-normalizer==3.3.2
idna==3.6
requests==2.31.0
urllib3==2.2.1

لتثبيت الحزم من هذا الملف في بيئة جديدة:

pip install -r requirements.txt

إلغاء تثبيت حزمة

إذا أردت إزالة حزمة:

pip uninstall requests

الخروج من البيئة الافتراضية

عند الانتهاء من العمل، اكتب الأمر التالي للخروج:

deactivate

ستلاحظ اختفاء اسم البيئة من سطر الأوامر.

أخطاء شائعة وكيفية تجنبها

  • نسيان تفعيل البيئة: إذا حاولت تثبيت حزمة دون تفعيل البيئة، ستثبت في النظام العام. تأكد دائماً من ظهور (venv) في الطرفية.
  • استخدام pip بدلاً من pip3: في بعض الأنظمة، قد يكون pip مرتبطاً بإصدار بايثون 2. استخدم pip3 إذا كنت تعمل مع بايثون 3.
  • حذف مجلد البيئة: لا تحذف مجلد venv يدوياً أثناء العمل. إذا أردت إعادة تعيين البيئة، احذف المجلد وأنشئه من جديد.
  • تثبيت حزم في غير محلها: تأكد من أنك داخل مجلد المشروع الصحيح قبل إنشاء البيئة.

💡 نصيحة عملية

احرص على إضافة مجلد venv إلى ملف .gitignore إذا كنت تستخدم Git. هذا يمنع رفع ملفات البيئة إلى المستودع، لأنها خاصة بكل نظام.

تمرين صغير

الآن حان دورك للتطبيق. اتبع الخطوات التالية:

  1. أنشئ مجلداً جديداً باسم practice_venv.
  2. أنشئ بيئة افتراضية داخله باسم env.
  3. فعل البيئة.
  4. ثبت حزمة colorama (تستخدم لتلوين النصوص في الطرفية).
  5. أنشئ ملف hello_color.py واكتب فيه الكود التالي:
    from colorama import Fore, Style, init
    init(autoreset=True)
    
    print(Fore.GREEN + "Hello, World!")
    print(Fore.BLUE + "This is a colored message.")
  6. شغل الملف وتأكد من ظهور النص بالألوان.
  7. أنشئ ملف requirements.txt باستخدام pip freeze.
  8. اخرج من البيئة باستخدام deactivate.

إذا نجحت في تنفيذ جميع الخطوات، فأنت الآن تفهم أساسيات إدارة الحزم والبيئات الافتراضية. هذا المهارة أساسية لأي مشروع بايثون حقيقي، وستستخدمها في الدروس القادمة عند تثبيت FastAPI.

جاري تحميل التقييمات...