pip والبيئات الافتراضية
المكتبة القياسية تغطي العديد من السيناريوهات، لكن المشاريع الحقيقية تستخدم دائماً تقريباً مكتبات الطرف الثالث —
requestsلـ HTTP،pandasللبيانات،flaskلتطبيقات الويب. هذا الدرس يعلمك كيفية تثبيت وإدارة هذه المكتبات، وكيفية استخدام البيئات الافتراضية لعزل التبعيات عبر المشاريع.
1. pip — مدير حزم بايثون
pip هو مدير الحزم الرسمي لبايثون، لتثبيت وإزالة وإدارة مكتبات الطرف الثالث.
# تثبيت حزمة
pip install requests
# تثبيت إصدار محدد
pip install requests==2.31.0
# إزالة حزمة
pip uninstall requests
# عرض الحزم المثبتة
pip list
# عرض معلومات الحزمة
pip show requests
pip install package_name يُنزّل ويُثبّت تلقائياً من PyPI.
2. requirements.txt
عندما يعتمد مشروعك على مكتبات طرف ثالث متعددة، استخدم requirements.txt لتسجيلها:
requests==2.31.0
flask==3.0.0
pandas==2.0.0
numpy==1.24.0
# تثبيت جميع التبعيات (شغّل بعد استنساخ مشروع)
pip install -r requirements.txt
# إنشاء requirements.txt (جميع الحزم في البيئة الحالية)
pip freeze > requirements.txt
مثال: استدعاء API باستخدام requests (الصعوبة ⭐⭐)
# ثبّت أولاً: pip install requests
import requests
# استدعاء واجهة طقس عامة
try:
response = requests.get(
"https://api.open-meteo.com/v1/forecast",
params={
"latitude": 39.9,
"longitude": 116.4,
"current_weather": True
},
timeout=10
)
if response.status_code == 200:
data = response.json()
weather = data["current_weather"]
print(f"Beijing current temperature: {weather['temperature']}°C")
print(f"Wind speed: {weather['windspeed']} km/h")
else:
print(f"Request failed: {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"Network error: {e}")
3. البيئات الافتراضية (venv)
المشاريع المختلفة قد تحتاج إصدارات مختلفة من نفس الحزمة. البيئات الافتراضية تحل هذا — كل مشروع له بيئته المعزولة الخاصة.
# إنشاء بيئة افتراضية
python -m venv myenv
# تفعيل البيئة الافتراضية
# ويندوز:
myenv\Scripts\activate
# macOS/لينكس:
source myenv/bin/activate
# بعد التفعيل، يظهر (myenv) في بداية الموجه
# الحزم المثبتة الآن تؤثر فقط على هذه البيئة
# إلغاء تفعيل البيئة الافتراضية
deactivate
سير العمل
# 1. أنشئ دليل المشروع
mkdir my_project
cd my_project
# 2. أنشئ بيئة افتراضية
python -m venv venv
# 3. فعّل
# ويندوز:
venv\Scripts\activate
# macOS/لينكس:
source venv/bin/activate
# 4. ثبّت التبعيات
pip install requests flask
# 5. سجل التبعيات
pip freeze > requirements.txt
# 6. ألغِ التفعيل عند الانتهاء
deactivate
# شخص آخر يستنسخ المشروع:
# python -m venv venv
# source venv/bin/activate (أو ما يعادله في ويندوز)
# pip install -r requirements.txt
4. مرجع سريع لمكتبات الطرف الثالث الشائعة
| المكتبة | الغرض | أمر التثبيت | سطر واحد |
|---|---|---|---|
requests |
طلبات HTTP | pip install requests |
أشهر طريقة لطلبات HTTP |
flask |
إطار ويب | pip install flask |
إطار ويب بايثون خفيف الوزن |
pandas |
تحليل بيانات | pip install pandas |
معالجة بيانات بمستوى Excel |
numpy |
حساب عددي | pip install numpy |
عمليات مصفوفات عالية الأداء |
beautifulsoup4 |
استخراج بيانات ويب | pip install beautifulsoup4 |
استخراج بيانات من HTML |
pillow |
معالجة صور | pip install pillow |
فتح وتحرير وحفظ الصور |
pytest |
إطار اختبار | pip install pytest |
أشهر إطار اختبار بايثون |
مثال: قراءة CSV باستخدام pandas (الصعوبة ⭐⭐)
# ثبّت أولاً: pip install pandas
import pandas as pd
# اقرأ ملف CSV
df = pd.read_csv("students.csv")
print(df.head()) # أول 5 صفوف
print(f"Rows: {len(df)}, Columns: {len(df.columns)}")
print(df.describe()) # ملخص إحصائي
حالات الاستخدام الشائعة
- تهيئة المشروع: أنشئ venv ← ثبّت التبعيات ← ابدأ البرمجة.
- إدارة التبعيات: أثبت الإصدارات بـ
requirements.txtللاتساق عبر الفريق والإنتاج. - عزل البيئة: مشاريع مختلفة تستخدم إصدارات مختلفة من نفس المكتبة (مثل المشروع أ يستخدم Flask 2.x، المشروع ب يستخدم Flask 3.x).
- نشر بنقرة واحدة:
pip install -r requirements.txtيُثبّت جميع التبعيات مرة واحدة.
❓ أسئلة شائعة
pip install و python -m pip install؟python -m pip يُحدد صراحة أي مفسر بايثون يستخدم pip، وهو أكثر أماناً في بيئات متعددة إصدارات بايثون. اعتد على استخدام python -m pip install.
س:هل يجب أن تكون البيئة الافتراضية داخل أو خارج دليل المشروع؟ ج:عادة داخل جذر المشروع، باسم venv أو .venv. هذا يجعله واضحاً للمطورين الآخرين. تذكر إضافة venv/ إلى .gitignore — البيئات الافتراضية لا ينبغي أن تُرفع إلى نظام التحكم في الإصدارات.
س:pip freeze > requirements.txt يسرد جميع الحزم، بما في ذلك تبعيات التبعيات. أليس هذا كثيراً جداً؟ ج:pip freeze يسرد كل شيء. من الشائع الاحتفاظ فقط بالحزم عالية المستوى وإزالة التبعيات غير المباشرة. بدلاً من ذلك، استخدم pipreqs، الذي يمسح فقط الحزم المستوردة فعلياً في كودك.📖 ملخص
pip install package_nameيُثبّت حزم الطرف الثالث؛pip uninstallيزيلهاrequirements.txtيسجل تبعيات المشروع؛pip install -r requirements.txtيُثبّتها جميعاً- البيئات الافتراضية (
venv) تعزل التبعيات لكل مشروع - سير العمل: أنشئ venv ← فعّل ← pip install ← طوّر ← جمّد ← التزم
- مكتبات الطرف الثالث الشائعة:
requests,flask,pandas,numpy,beautifulsoup4
📝 تمارين
-
أساسي (الصعوبة ⭐): أنشئ بيئة افتراضية، فعّلها، ثبّت مكتبة
requests، تأكد بـpip list، ثم ألغِ التفعيل. -
متوسط (الصعوبة ⭐⭐): استخدم مكتبة
requestsلاستدعاء https://api.github.com/repos/python/cpython واحصل على معلومات عن مستودع CPython. أخرج اسم المستودع، عدد النجوم، عدد الشوكات، وآخر وقت تحديث. -
تحدي (الصعوبة ⭐⭐⭐): أنشئ دليل مشروع، هيئ بيئة افتراضية، ثبّت
flaskوrequests، أنشئrequirements.txtباستخدامpip freeze. ثم احذف البيئة الافتراضية وأعد بنائها من الصفر باستخدامrequirements.txt— تحقق من أنها تعمل.



