الدرس 4 من 8

pip والبيئات الافتراضية

الأداة اللي هتفتحلك باب آلاف المكتبات.

متجر مكتبات بايثون (pip)

فيه موقع اسمه PyPI عليه مئات الآلاف من المكتبات اللي ناس عملتها وشاركتها. pip هو الأداة اللي بتنزّل منه. كل مكتبات الـ AI اللي هتستخدمها (numpy و pandas و torch) هتتسطب بيه.

terminal
pip install requests          # install a library
pip install pandas==2.2.3     # install a specific version
pip list                      # show installed libraries
pip uninstall requests        # remove a library

المشكلة: مشروعين محتاجين نسخ مختلفة

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

# 1. Create the environment (once per project)
python -m venv venv

# 2. Activate it (every time you open a new terminal)
venv\Scripts\activate

# 3. Now pip installs only inside this project
pip install requests

# 4. Leave the environment
deactivate

لو PowerShell رفض يشغل الأمر، جرّب تفتح Command Prompt بدل منه.

قائمة مكونات المشروع (requirements.txt)

زي ورقة المكونات في وصفة أكل. بتكتب فيها كل المكتبات ونسخها، فأي حد ياخد مشروعك يسطب نفس الحاجات بأمر واحد.

terminal
# Save your project's libraries to a file
pip freeze > requirements.txt

# On another machine: install everything at once
pip install -r requirements.txt

جرب مكتبة حقيقية: requests

requests بتخليك تكلم أي API على النت. هنا بنجيب بيانات حساب على GitHub. ده نفس اللي هتعمله بعدين لما تكلم APIs الموديلات زي Claude.

api_call.py
import requests

response = requests.get("https://api.github.com/users/octocat")

if response.status_code == 200:          # 200 means success
    data = response.json()               # JSON -> Python dict
    print("Name:", data["name"])
    print("Public repos:", data["public_repos"])
else:
    print("Request failed:", response.status_code)
⚠ متنساش تفعّل الـ venvأشهر مشكلة: تسطب مكتبة وتلاقي ModuleNotFoundError. غالباً سطبتها وانت برا الـ venv، أو بتشغل الكود وانت برا. اتأكد إن (venv) ظاهرة في الـ Terminal. وفي VS Code اختار الـ interpreter بتاع الـ venv من تحت على اليمين.
الدرس اللي فات