إدارة الحزم والبيئات الافتراضية في بايثون
ما هي الحزم والبيئات الافتراضية؟
الدرس العاشر: إدارة الحزم والبيئات الافتراضية (Packages & Virtual Environments)
في الدروس السابقة، كنا نستخدم مكتبات بايثون المدمجة فقط. لكن في المشاريع الحقيقية، ستحتاج إلى استخدام مكتبات خارجية مثل FastAPI أو Flask أو Pandas. هنا يأتي دور إدارة الحزم والبيئات الافتراضية. في هذا الدرس، سنتعلم كيف نثبت الحزم، وكيف ننشئ بيئة افتراضية لعزل مشروعنا عن بقية المشاريع.
ما هي الحزمة (Package)؟
الحزمة هي مجموعة من الملفات والوحدات (modules) التي تقدم وظائف جاهزة. بدلاً من كتابة كل شيء من الصفر، يمكنك تثبيت حزمة واستخدام دوالها مباشرة. مثال: حزمة requests تسمح لك بإرسال طلبات HTTP بسهولة.
ما هي البيئة الافتراضية (Virtual Environment)؟
البيئة الافتراضية هي مساحة معزولة داخل نظامك، تحتوي على نسخة خاصة من بايثون ومكتباتها. لماذا نحتاجها؟ تخيل أنك تعمل على مشروعين: الأول يحتاج إصدار 1.0 من مكتبة requests، والثاني يحتاج إصدار 2.0. بدون بيئة افتراضية، ستتعارض الإصدارات. البيئة الافتراضية تحل هذه المشكلة.
أداة pip: مدير الحزم
pip هي الأداة الرسمية لتثبيت وإدارة الحزم في بايثون. تأتي مثبتة تلقائياً مع بايثون 3.4 فما فوق. يمكنك التحقق من وجودها بكتابة الأمر التالي في الطرفية (Terminal):
pip --version
إذا ظهر رقم الإصدار، فأنت جاهز. وإلا، يمكنك تثبيتها من الموقع الرسمي.
خطوات إنشاء بيئة افتراضية
لنبدأ عملياً. سننشئ مجلداً للمشروع، ثم ننشئ بيئة افتراضية داخله.
- إنشاء مجلد المشروع:
mkdir my_project cd my_project - إنشاء البيئة الافتراضية:
python -m venv venvالأمر الأول
python -m venvيستخدم وحدةvenvالمدمجة. الأمر الثانيvenvهو اسم المجلد الذي سيحتوي على البيئة. يمكنك تسميته.venvأوenvحسب تفضيلك. - تفعيل البيئة الافتراضية:
- على نظام Windows (Command Prompt):
venv\Scripts\activate - على نظام macOS/Linux:
source venv/bin/activate
بعد التفعيل، ستلاحظ ظهور اسم البيئة بين قوسين في بداية سطر الأوامر، هكذا:
(venv). هذا يعني أنك الآن داخل البيئة الافتراضية. - على نظام Windows (Command Prompt):
تثبيت الحزم داخل البيئة
الآن وقد فعلنا البيئة، لنثبت حزمة 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. هذا يمنع رفع ملفات البيئة إلى المستودع، لأنها خاصة بكل نظام.
تمرين صغير
الآن حان دورك للتطبيق. اتبع الخطوات التالية:
- أنشئ مجلداً جديداً باسم
practice_venv. - أنشئ بيئة افتراضية داخله باسم
env. - فعل البيئة.
- ثبت حزمة
colorama(تستخدم لتلوين النصوص في الطرفية). - أنشئ ملف
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.") - شغل الملف وتأكد من ظهور النص بالألوان.
- أنشئ ملف
requirements.txtباستخدامpip freeze. - اخرج من البيئة باستخدام
deactivate.
إذا نجحت في تنفيذ جميع الخطوات، فأنت الآن تفهم أساسيات إدارة الحزم والبيئات الافتراضية. هذا المهارة أساسية لأي مشروع بايثون حقيقي، وستستخدمها في الدروس القادمة عند تثبيت FastAPI.
جاري تحميل التقييمات...