تكتب pip install requests بحماس، فيصفعك الطرفية بواحدة من عائلة أخطاء
شهيرة. الخبر الجيد: 90% منها يعود لسببين فقط، وحلّهما واحد. لنمرّ على
الأخطاء الخمسة الأشهر في بايثون بالترتيب.
الأخطاء الخمسة في جدول
| الخطأ | السبب | الحل السريع |
|---|---|---|
'pip' is not recognized | pip ليس في PATH | python -m pip install ... |
externally-managed-environment | حماية بايثون النظام (PEP 668) | بيئة افتراضية venv |
Permission denied | تثبيت في مجلدات النظام | venv (وليس sudo!) |
Could not find a version | اسم خاطئ أو بايثون قديم | تحقق من الاسم والإصدار |
| فشل build أثناء التثبيت | مكتبة تحتاج ترجمة | حدّث pip أو ثبّت wheel جاهزة |
1) 'pip' is not recognized — أشهرها على ويندوز
'pip' is not recognized as an internal or external command
النظام لا يجد pip في PATH. لا تطارد إعدادات PATH — استخدم الصيغة المضمونة:
python -m pip install requests
# أو على بعض الأنظمة:
py -m pip install requests
python -m pip تقول حرفيًّا: "شغّل pip التابع لبايثون هذا" — فتضمن أن
المكتبة تُثبّت حيث سيبحث عنها كودك، وهي نفسها الوقاية من خطأ
ModuleNotFoundError الذي شرحناه في مقال مستقل.
2) externally-managed-environment — الجديد المزعج
error: externally-managed-environment
× This environment is externally managed
توزيعات لينكس الحديثة (وhomebrew على ماك) تحمي بايثون النظام من العبث. الرسالة تدفعك نحو الممارسة الصحيحة أصلًا — بيئة افتراضية لكل مشروع:
python -m venv venv # أنشئها مرة واحدة داخل مجلد المشروع
source venv/bin/activate # فعّلها (لينكس/ماك)
venv\Scripts\activate # فعّلها (ويندوز)
python -m pip install requests # ✅ يثبّت داخل البيئة بلا أي مقاومة
علامة نجاح التفعيل: اسم (venv) يظهر أول سطر الطرفية. ولإلغاء التفعيل:
deactivate.
3) Permission denied — لا تستسلم لإغراء sudo
ERROR: Could not install packages due to an OSError:
[Errno 13] Permission denied
يعني أن pip يحاول الكتابة في مجلدات النظام المحمية. sudo pip install
يحل الرسالة ويزرع قنبلة: قد يكسر أدوات النظام المعتمدة على بايثون.
الحلول بالترتيب:
# ✅ الأفضل: بيئة افتراضية — لا تحتاج صلاحيات أصلًا
python -m venv venv && source venv/bin/activate
# 🆗 البديل: التثبيت في مجلد المستخدم
python -m pip install --user requests
ولمشاكل الصلاحيات في لينكس عمومًا راجع حل خطأ Permission denied في لينكس.
4) Could not find a version that satisfies the requirement
ERROR: Could not find a version that satisfies the requirement reqests
ثلاثة أسباب بالترتيب:
- خطأ إملائي — لاحظ
reqestsأعلاه! تحقق من الاسم الدقيق في pypi.org. - بايثون قديم: المكتبات الحديثة تشترط إصدارات حديثة —
python --versionوقارن بمتطلبات المكتبة. - pip قديم لا يعرف صيغ الحزم الجديدة:
python -m pip install --upgrade pip
5) فشل الترجمة (error: Microsoft Visual C++ ... / gcc failed)
بعض المكتبات تحتاج ترجمة كود C عند التثبيت. قبل تثبيت أدوات الترجمة الضخمة، جرّب:
python -m pip install --upgrade pip setuptools wheel
python -m pip install numpy # غالبًا ستُسحب wheel جاهزة مبنية مسبقًا
pip الحديث يجلب حزمًا مبنية مسبقًا (wheels) لأغلب المكتبات الشهيرة — الترجمة اليدوية صارت نادرة.
قائمة تحقّق سريعة
- ثبّت دائمًا بـ
python -m pip install— لاpipوحدها. - لكل مشروع
venvمفعّلة — تحلّ externally-managed وPermission معًا. - الخطأ "لم أجد الحزمة"؟ افحص الإملاء ثم
python --versionثم حدّث pip. - لا تستخدم
sudo pipأبدًا. - بعد التثبيت شغّل الكود بنفس بايثون البيئة المفعّلة.
الخلاصة
مشاكل pip كلها تدور حول سؤال واحد: "في أي بايثون يُثبِّت؟". اجعل الجواب
محسومًا: بيئة افتراضية مفعّلة + python -m pip — وستختفي العائلة كلها.
أكمل الأساس في مسار بايثون بالعربي، وقارن مع أخطاء عالم الويب في حل أخطاء npm install — نفس الفكرة بنكهة JavaScript — وحل ModuleNotFoundError.