تعمل بيئات Python الافتراضية على عزل تبعيات المشروع، لكن تنشيطها يعرقل العديد من المطورين – يختلف الأمر باختلاف نظام التشغيل والصدفة، ويحظر PowerShell البرامج النصية افتراضيًا، ومن السهل تنشيط البيئة الخاطئة. فيما يلي كيفية إصلاح كل مشكلة في التنشيط.
📋 Table of Contents
- خلق بيئة افتراضية
- أمر التنشيط الصحيح بواسطة OS/Shell
- الإصلاح 1: "لم يتم العثور على الأمر" لنظام التشغيل MacOS/Linux أو لم يحدث شيء
- الإصلاح 2: PowerShell "لا يمكن تحميله بسبب تعطيل البرامج النصية قيد التشغيل"
- الإصلاح 3: تحقق من أنك مفعل بالفعل
- الإصلاح 4: مجلد venv مفقود أو مكسور
- الإصلاح 5: إصدار بايثون خاطئ في venv
- التعطيل والتبديل
- البدائل الحديثة
- الأسئلة المتداولة
- الخلاصة
خلق بيئة افتراضية
# Create a venv (do this in your project directory)
python -m venv venv
# On some systems, use python3 explicitly
python3 -m venv venv
# This creates a 'venv' folder with an isolated Python environment
أمر التنشيط الصحيح بواسطة OS/Shell
| نظام التشغيل / شل | أمر التنشيط |
|---|---|
| ماك/لينكس (باش/zsh) | source venv/bin/activate |
| ويندوز (موجه الأوامر) | venv\Scripts\activate.bat |
| ويندوز (باورشيل) | venv\Scripts\Activate.ps1 |
| ويندوز (جيت باش) | source venv/Scripts/activate |
| قشرة السمك | source venv/bin/activate.fish |
يعد استخدام الأمر الخاطئ لـ Shell الخاص بك هو السبب الأكثر شيوعًا لـ “لا يعمل” التنشيط.
الإصلاح 1: “لم يتم العثور على الأمر” لنظام التشغيل MacOS/Linux أو لم يحدث شيء
# Use 'source' (not just running the script)
source venv/bin/activate
# 🐛 This does NOT work (runs in a subshell that immediately exits):
./venv/bin/activate
# ✅ You MUST use source (or the . shortcut):
source venv/bin/activate
. venv/bin/activate # . is shorthand for source
# After activation, your prompt shows (venv):
# (venv) user@machine:~/project$
الإصلاح 2: PowerShell “لا يمكن تحميله بسبب تعطيل البرامج النصية قيد التشغيل”
# PowerShell blocks script execution by default. The error:
# venv\Scripts\Activate.ps1 cannot be loaded because running
# scripts is disabled on this system.
# ✅ Allow scripts for your user (safe, common fix)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Then activate normally
venv\Scripts\Activate.ps1
# ✅ Or bypass for just this session
powershell -ExecutionPolicy Bypass
venv\Scripts\Activate.ps1
الإصلاح 3: تحقق من أنك مفعل بالفعل
# Check which Python is being used
which python # macOS/Linux
where python # Windows
# Should point INSIDE your venv, e.g., /project/venv/bin/python
# Check the Python location from within Python
python -c "import sys; print(sys.prefix)"
# Should show your venv path, not the system Python path
# The (venv) prefix in your prompt also confirms activation:
# (venv) $
الإصلاح 4: مجلد venv مفقود أو مكسور
# If activation fails because the venv doesn't exist or is broken,
# recreate it:
rm -rf venv # remove broken venv (macOS/Linux)
# rmdir /s venv # Windows Command Prompt
python -m venv venv # create fresh
source venv/bin/activate # activate
# Reinstall your dependencies
pip install -r requirements.txt
الإصلاح 5: إصدار بايثون خاطئ في venv
# Create a venv with a specific Python version
python3.12 -m venv venv # uses Python 3.12 specifically
# Verify the version inside the venv
source venv/bin/activate
python --version # should show 3.12.x
# If you have multiple Python versions, be explicit about which one
التعطيل والتبديل
# Deactivate the current environment
deactivate
# The (venv) prefix disappears, returning to system Python
# Common mistake: forgetting to activate, then installing globally
# Always activate BEFORE running pip install for a project
البدائل الحديثة
# uv - fast, modern Python package/environment manager (2026)
uv venv # create venv
source .venv/bin/activate # activate
uv pip install requests # install fast
# Poetry - manages venvs automatically
poetry install # creates venv and installs deps
poetry shell # activate the poetry venv
poetry run python script.py # run within the venv without activating
الأسئلة المتداولة
س: لماذا لا يعمل ./venv/bin/activate على نظام التشغيل macOS/Linux؟
ج: يؤدي تشغيل البرنامج النصي مباشرةً إلى بدء تشغيل غلاف فرعي يتم تنشيطه والخروج منه فورًا، لذلك لا يتغير شيء في غلافك الحالي. يجب عليك استخدامsource venv/bin/activate (أو. venv/bin/activate) لتشغيله في غلافك الحالي.
س: كيف يمكنني إصلاح خطأ سياسة تنفيذ PowerShell؟
ج: تشغيلSet-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser للسماح بالبرامج النصية الموقعة للمستخدم الخاص بك. هذا آمن والإصلاح القياسي. ثم يعمل التنشيط بشكل طبيعي. بدلا من ذلك، تجاوزه لجلسة واحدة.
س: كيف أعرف إذا تم تفعيل جهاز venv الخاص بي؟
ج: تظهر المطالبة الخاصة بك(venv) في البداية. تحقق أكثر معwhich python (يجب أن يشير إلى داخل جهاز venv الخاص بك) أوpython -c "import sys; print(sys.prefix)" (يجب أن يُظهر مسار venv، وليس نظام Python).
س: هل يجب أن أقوم بربط مجلد venv الخاص بي بـ Git؟
ج: لا – أضفvenv/ to .gitignore. venv خاص بالآلة وكبير. بدلا من ذلك، ارتكبrequirements.txt (أو pyproject.toml) حتى يتمكن الآخرون من إعادة إنشاء البيئة باستخدامpip install -r requirements.txt.
س: هل هناك أداة أفضل من venv في 2026؟
A: uv هو خيار سريع وحديث يقوم بإنشاء البيئات وتثبيت الحزم بشكل أسرع بكثير. الشعر يدير Venvs والتبعيات معا. venv مدمج وجيد، لكن uv وPoetry يقدمان تجربة أفضل للمطورين للعديد من مسارات العمل.
الخلاصة
غالبًا ما تعود مشكلات تنشيط البيئة الافتراضية لـ Python إلى استخدام الأمر الخاطئ لنظام التشغيل/shell أو قيود البرنامج النصي لـ PowerShell. الإصلاحات:استخدمsource venv/bin/activate على نظام التشغيل macOS/Linux (باستخدام ، وليس عن طريق تشغيل البرنامج النصي مباشرةً)، فإنsourceالصحيح البرنامج النصي على نظام التشغيل Windows، وأصلح PowerShell باستخدام.bat or .ps1. تحقق من التنشيط عن طريق التحقق منSet-ExecutionPolicy RemoteSigned -Scope CurrentUser بادئة المطالبة وذلك(venv) النقاط داخل venv الخاص بك. قم بالتنشيط دائمًا قبل تشغيل pip install، وقم بتجاهل مجلد venv، وفكر في الأدوات الحديثة مثل uv أو Poetry للحصول على تجربة أفضل. بمجرد معرفة الأمر الصحيح لـ Shell الخاص بك، يصبح التنشيط سهلاً ومباشرًا.which python النقاط داخل venv الخاص بك. قم بالتنشيط دائمًا قبل تشغيل pip install، وقم بتجاهل مجلد venv، وفكر في الأدوات الحديثة مثل uv أو Poetry للحصول على تجربة أفضل. بمجرد معرفة الأمر الصحيح لـ Shell الخاص بك، يصبح التنشيط سهلاً ومباشرًا.
🔗 Share this article
✍️ Leave a Comment