تفعيل بيئة بايثون افتراضية: دليل المبتدئين

Rebecca Kovács

Rebecca Kovács

2 مايو 2025

تفعيل بيئة بايثون افتراضية: دليل المبتدئين

في عالم تطوير بايثون الديناميكي، تعد إدارة التبعيات وبيئات المشروع أمرًا بالغ الأهمية للحفاظ على سلامة العمل والنجاح. تخيل أنك تعمل على مشروعين مختلفين: أحدهما يتطلب إصدارًا أقدم لمكتبة شائعة مثل requests، بينما يحتاج الآخر إلى أحدث الميزات. إن تثبيت كلاهما على مستوى النظام سيؤدي حتمًا إلى تعارضات، أعطال، وإحباط. هذه هي المشكلة بالضبط التي صُممت بيئات بايثون الافتراضية لحلها.

سيرشدك هذا البرنامج التعليمي عبر أساسيات بيئات بايثون الافتراضية، مع التركيز بشكل خاص على عملية التنشيط باستخدام الوحدة المضمنة venv. سنغطي سبب كونها ضرورية، وكيفية إنشائها، والأهم من ذلك، الأوامر خطوة بخطوة لتنشيطها عبر أنظمة التشغيل وقذائف الأوامر المختلفة.

💡
هل تبحث عن أداة رائعة لاختبار واجهات برمجة التطبيقات (API Testing) تولد توثيقًا جميلًا لواجهات برمجة التطبيقات؟

هل تريد منصة متكاملة وشاملة لفريق المطورين الخاص بك للعمل معًا بأقصى قدر من الإنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر معقول أكثر بكثير!
button

ما هي البيئة الافتراضية بالضبط؟ (ولماذا تحتاجها بالتأكيد)

في جوهرها، بيئة بايثون الافتراضية هي شجرة دليل معزولة تحتوي على تثبيت بايثون محدد ومجموعة من الحزم الإضافية. فكر فيها كفقاعة مكتفية ذاتيًا لمشروع بايثون الخاص بك.

المفاهيم الرئيسية:

  1. العزل: عند إنشاء وتنشيط بيئة افتراضية، يتم وضع أي حزم تقوم بتثبيتها (pip install ...) داخل دليل تلك البيئة، وليس في تثبيت بايثون العام الخاص بك. هذا يمنع التعارضات بين المشاريع التي لديها متطلبات تبعيات مختلفة. يمكن للمشروع A استخدام requests==2.20.0 بينما يستخدم المشروع B requests==2.31.0 دون التدخل في بعضهما البعض أو في إعداد بايثون الأساسي لنظامك.
  2. إدارة التبعيات: البيئات الافتراضية تجعل إدارة تبعيات المشروع واضحة وقابلة للتكرار. يمكنك إنشاء قائمة بجميع الحزم (وإصداراتها المحددة) المثبتة في بيئة (عادةً باستخدام pip freeze > requirements.txt). يمكن بعد ذلك مشاركة هذا الملف مع المتعاونين أو استخدامه في خطوط أنابيب النشر لإعادة إنشاء نفس البيئة بالضبط في مكان آخر (pip install -r requirements.txt).
  3. التحكم في الإصدار: على الرغم من أنه أقل شيوعًا مع venv نفسها (والتي تستخدم عادةً إصدار بايثون الذي تم إنشاؤها به)، فإن المفهوم يسمح لك بربط مشروع بإصدار مترجم بايثون محدد متاح على نظامك أثناء الإنشاء. الأدوات الأكثر تقدمًا تبني على هذا لإدارة إصدار بايثون بشكل أكثر صرامة.
  4. النظافة: تحافظ على تثبيت بايثون العام الخاص بك مرتبًا. الأدوات الأساسية المطلوبة عالميًا فقط (مثل pip نفسها، venv، ربما أدوات التحقق من الأكواد أو المنسقات إذا كنت تفضلها عالميًا) تقيم في دليل site-packages الرئيسي. الفوضى الخاصة بالمشروع تبقى داخل البيئة الافتراضية للمشروع.

المشكلة التي تم حلها:

ضع في اعتبارك هذا السيناريو بدون بيئات افتراضية:

مع البيئات الافتراضية:

كلا المشروعين يعملان بشكل مثالي، باستخدام نسخ معزولة خاصة بهما من CoolLib بالإصدارات المطلوبة.

تقديم venv: حل بايثون المضمن

منذ بايثون 3.3، تم تضمين وحدة venv في المكتبة القياسية، مما يجعلها الطريقة الموصى بها لإنشاء بيئات افتراضية خفيفة الوزن. قبل venv، كانت حزمة virtualenv هي الحل الخارجي المفضل (ولا تزال تقدم بعض الميزات الإضافية)، ولكن لمعظم حالات الاستخدام الشائعة، venv كافية ومتاحة بسهولة.

الخطوة 1: إنشاء بيئتك الافتراضية

قبل أن تتمكن من تنشيط بيئة، تحتاج إلى إنشائها. يتم ذلك باستخدام وحدة venv، يتم تنفيذها عبر علامة -m مع مترجم بايثون المطلوب.

افتح الطرفية أو موجه الأوامر، انتقل إلى الدليل الجذر لمشروعك، وقم بتشغيل الأمر التالي:

# For Linux/macOS
python3 -m venv <environment_name>

# For Windows (often just 'python' works)
python -m venv <environment_name>

الشرح:

دعنا نستخدم .venv كاسم مثال:

# Linux/macOS
python3 -m venv .venv

# Windows
python -m venv .venv

بعد تشغيل هذا الأمر، سترى دليلًا جديدًا باسم .venv (أو أي اسم اخترته) في مجلد مشروعك.

داخل دليل البيئة الافتراضية:

إذا نظرت داخل دليل .venv، ستجد هيكلًا مثل هذا (تختلف التفاصيل قليلاً بين أنظمة التشغيل):

الخطوة 2: تنشيط البيئة الافتراضية (الحدث الرئيسي!)

إنشاء البيئة يقوم بإعداد الهيكل، لكن تنشيطها يعدل جلسة القذيفة الحالية لديك لاستخدام مترجم بايثون وحزم تلك البيئة افتراضيًا. التنشيط يضيف بشكل أساسي دليل سكريبت البيئة (.venv/bin أو .venv/Scripts) إلى متغير البيئة PATH الخاص بقذيفة الأوامر لديك.

يعتمد أمر التنشيط الدقيق على نظام التشغيل والقذيفة التي تستخدمها.

أ. ويندوز:

موجه الأوامر (cmd.exe):

.venv\Scripts\activate.bat

باور شيل (PowerShell):

.venv\Scripts\Activate.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

قد تحتاج إلى تشغيل PowerShell كمسؤول لتغيير السياسات. استشر وثائق PowerShell للحصول على تفاصيل حول سياسات التنفيذ. غالبًا ما يعمل تشغيل .venv\Scripts\Activate.ps1 مباشرة إذا كانت السياسة تسمح بذلك.

Git Bash (أو قذائف أخرى شبيهة بـ Bash على ويندوز):

source .venv/Scripts/activate

(لاحظ الشرطات المائلة للأمام وعدم وجود امتداد للملف).

ب. macOS / لينكس:

Bash أو Zsh (الافتراضيات الشائعة):

source .venv/bin/activate

Fish Shell:

source .venv/bin/activate.fish

Csh أو Tcsh:

source .venv/bin/activate.csh

كيف تعرف أنها نشطة؟

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

# Before activation (example)
user@hostname:~/my_project$

# After activation (example)
(.venv) user@hostname:~/my_project$

هذه البادئة تخبرك فورًا أن جلسة القذيفة الخاصة بك تعمل حاليًا ضمن البيئة الافتراضية المحددة. أي أوامر python أو pip تقوم بتشغيلها الآن ستستخدم الملفات التنفيذية والحزم داخل .venv.

يمكنك التحقق من ذلك:

# Check which Python executable is being used
which python  # Linux/macOS
where python # Windows (cmd/powershell)

# Check which pip is being used
which pip # Linux/macOS
where pip # Windows (cmd/powershell)

يجب أن يشير الإخراج إلى المسارات داخل دليل .venv الخاص بك.

الخطوة 3: العمل داخل البيئة المنشطة

مع تنشيط البيئة، يمكنك الآن:

(.venv) $ pip install requests
(.venv) $ pip install flask pandas numpy
(.venv) $ pip list
(.venv) $ pip freeze

(pip freeze يعطي إخراجًا مناسبًا لـ requirements.txt).

(.venv) $ python my_script.py

الخطوة 4: إلغاء تنشيط البيئة الافتراضية

عند الانتهاء من العمل على مشروعك داخل البيئة الافتراضية، يمكنك إلغاء تنشيطها لإعادة جلسة القذيفة إلى وضعها الطبيعي، باستخدام تثبيت بايثون الافتراضي لنظامك.

ببساطة قم بتشغيل الأمر:

(.venv) $ deactivate

يعمل هذا الأمر عالميًا عبر جميع القذائف وأنظمة التشغيل المذكورة أعلاه بمجرد أن تكون البيئة نشطة.

بعد تشغيل deactivate، ستلاحظ:

  1. اختفاء البادئة (.venv) من موجه القذيفة الخاص بك.
  2. تشغيل which python / where python سيشير الآن مرة أخرى إلى مترجم بايثون العام الخاص بك.

ملخص أفضل الممارسات

# .gitignore
.venv/
# To generate/update
(.venv) $ pip freeze > requirements.txt

# To install from file in a new environment
(.venv) $ pip install -r requirements.txt

استكشاف أخطاء التنشيط الشائعة وإصلاحها

الخلاصة

تنشيط بيئة بايثون الافتراضية مهارة أساسية لأي مطور بايثون. إنها البوابة لإدارة التبعيات الفعالة، عزل المشروع، وبناءات قابلة للتكرار. بينما يختلف الأمر الدقيق قليلاً اعتمادًا على نظام التشغيل والقذيفة الخاصة بك، تتضمن العملية الأساسية الانتقال إلى مشروعك، تشغيل سكريبت التنشيط المناسب (عادةً ما يوجد داخل .venv/bin/ أو .venv/Scripts/)، وتأكيد التنشيط عبر موجه القذيفة المعدل. بمجرد إتقانها، يصبح استخدام venv طبيعة ثانية، مما يتيح سير عمل تطوير بايثون أنظف، أكثر موثوقية، وخاليًا من التعارضات. اجعلها عادة لكل مشروع بايثون جديد تبدأه!

💡
هل تبحث عن أداة رائعة لاختبار واجهات برمجة التطبيقات (API Testing) تولد توثيقًا جميلًا لواجهات برمجة التطبيقات؟

هل تريد منصة متكاملة وشاملة لفريق المطورين الخاص بك للعمل معًا بأقصى قدر من الإنتاجية؟

Apidog يلبي جميع متطلباتك، ويحل محل Postman بسعر معقول أكثر بكثير!
button

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات