Python: pip والبيئات الافتراضية
المكتبة القياسية تغطي العديد من السيناريوهات، لكن المشاريع الحقيقية تستخدم دائماً تقريباً مكتبات الطرف الثالث —
requestsلـ HTTP،pandasللبيانات،flaskلتطبيقات الويب. هذا الدرس يعلمك كيفية تثبيت وإدارة هذه المكتبات، وكيفية استخدام البيئات الافتراضية لعزل التبعيات عبر المشاريع.
1. pip — مدير حزم بايثون
pip هو مدير الحزم الرسمي لبايثون، لتثبيت وإزالة وإدارة مكتبات الطرف الثالث.
# تثبيت package
pip install requests
# تثبيت إصدار محدد
pip install requests==2.31.0
# إزالة package
pip uninstall requests
# عرض الحزم المثبتة
pip list
# عرض معلومات package
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) سير العمل
# 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()) # ملخص إحصائي
▶ مثال: سير العمل الكامل للبيئة الافتراضية (الصعوبة ⭐)
# 1. Create project directory
mkdir my_data_project
cd my_data_project
# 2. Create virtual environment
python -m venv venv
# 3. Activate virtual environment (Windows)
venv\Scripts\activate
# Activate virtual environment (macOS/Linux)
# source venv/bin/activate
# 4. Install project dependencies
pip install requests pandas
# 5. Verify installation
pip list
# Output:
# Package Version
# ---------- -------
# pandas 2.x.x
# requests 2.x.x
# 6. Freeze dependencies to file
pip freeze > requirements.txt
# 7. View requirements.txt contents
type requirements.txt
# Output:
# pandas==2.x.x
# requests==2.x.x
# 8. Deactivate virtual environment
deactivate
# 9. Someone else rebuilds the environment
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
pip freeze > requirements.txt يكتب إصدارات حزم البيئة الحالية إلى ملف؛ يستخدم الآخرون pip install -r requirements.txt لإعادة إنتاج نفس البيئة بالضبط.
5. حالات الاستخدام الشائعة
- تهيئة المشروع: أنشئ 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— تحقق من أنها تعمل.