بدء استخدام البيئات الافتراضية في لغة بايثون

نشرت: 2022-11-07

في هذه المقالة ، ستتعلم كيفية بدء استخدام البيئات الافتراضية في Python ، في كل من أنظمة تشغيل Windows و Linux.

عندما تبدأ العمل في مشاريع متعددة في بيئة التطوير المحلية الخاصة بك ، ستواجه غالبًا مشكلات التبعية. يمكن أن يساعدك إنشاء بيئات افتراضية لكل مشروع من مشاريعك في إدارة التبعيات ومتطلبات المشروع بشكل أفضل.

للاستفادة من ميزة البيئات الافتراضية في Python ، دعنا نتعلم إنشاء البيئات الافتراضية وتنشيطها.

ما هي البيئات الافتراضية؟

البيئات الافتراضية هي بيئات معزولة ومستقلة تحتوي على رمز وتبعيات المشروع.

لكن لماذا يجب عليك استخدام البيئات الافتراضية؟

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

تثبيت الحزم في بايثون

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

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

لتثبيت هذه الحزم وإدارتها ، يمكنك استخدام conda أو pip.

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

محلي- dev-env

ذلك هو السبب في هذه المشكلة؟

حسنًا ، قد يكون لديك حزم N في بيئة التطوير الخاصة بك. ومع ذلك ، فإن المشروع الذي تعمل عليه حاليًا قد يتطلب 3 منهم فقط. عندما تشترك جميع مشاريعك في عمليات التثبيت المشتركة ، يكون من الصعب جدًا تحديد أي من المشاريع يتطلب أيًا من الحزم المثبتة - التبعيات المرتبطة بكل مشروع.

هناك قيود أخرى على هذا النهج. افترض أن لديك مشروع Django 2.2 في مكتبة مشروعك. قررت أن تبدأ العمل في مشروع يستخدم Django 4. لذلك قمت بتثبيت أحدث إصدار من Django في نفس بيئة التطوير.

ماذا يحدث للتثبيت الحالي؟

تمت إزالته واستبداله بإصدار Django الذي قمت بتثبيته. مع الإصدارات الأحدث المستقرة ، ربما تم إهمال بعض الميزات. وقد لا تعمل مشاريع Django السابقة كما هو متوقع.

نسخة فرق

تلخيص مناقشتنا حتى الآن: تصبح إدارة التبعية صعبة عندما يتم تثبيت جميع الحزم في بيئة مشتركة لأن المشاريع تتطلب تشغيل مجموعة مكتبات خاصة بها.

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

حتى الآن ، رأينا التحديات المرتبطة بتثبيت الحزم في بيئة تطوير عالمية (عمليات التثبيت على مستوى النظام). هذا يحفزنا على فهم كيفية معالجة البيئات الافتراضية لهذا القيد.

عندما تقوم بإنشاء وتنشيط بيئة افتراضية لمشاريع Python الخاصة بك ، يمكنك فقط تثبيت تلك الحزم المطلوبة للمشروع الحالي.

البيئات الافتراضية بيثون

إعادة النظر في مثال مشاريع Django ، مع البيئات الافتراضية ، يمكنك تشغيل مشاريع Django 2.2 و Django 4 - دون أي تعارض. هذا لأن تثبيتات Django لم تعد منشآت على مستوى النظام ولكنها محصورة في البيئات الافتراضية للمشاريع المعنية.

في جوهرها: البيئات الافتراضية هي بيئات معزولة تحتوي على كل من الكود والتبعيات للمشروع.

مزايا البيئات الافتراضية

مزايا البيئات الافتراضية

الآن بعد أن تعلمت كيفية عمل البيئات الافتراضية في Python ، دعنا نعدد مزايا استخدامها:

  • توفر البيئات الافتراضية بيئة تطوير معزولة للمشاريع الفردية مما يسمح لنا بتثبيت الحزم المطلوبة فقط للمشروع المحدد.
  • نظرًا لأن البيئات الافتراضية للمشروعات مستقلة ومعزولة على حد سواء ، يمكن للمشاريع المختلفة استخدام إصدارات مختلفة من نفس المكتبة - اعتمادًا على المتطلبات. مع البيئات الافتراضية ، لا داعي للقلق بشأن أذونات النظام لتثبيت المكتبات وإعداد بيئة التطوير.
  • بمجرد تثبيت الحزم في بيئة افتراضية ، يمكنك التقاط تبعيات المشروع في ملف requirements.txt. يسمح هذا للمطورين الآخرين بتكرار تطوير المشروع والبيئة ، وتثبيت الحزم المطلوبة باستخدام أمر واحد.

أدوات لإنشاء بيئات افتراضية

أدوات لإنشاء بيئات افتراضية

لقد تعلمت حتى الآن كيفية عمل البيئات الافتراضية ومزايا استخدامها. دعنا نستكشف بعض الأدوات الشائعة التي يمكنك استخدامها لإنشاء وإدارة بيئات افتراضية في Python.

# 1. Virtualenv

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

# 2. بيبنف

مع pipnev ، لديك كل من وظائف البيئة الافتراضية الخاصة virtualenv وقدرات إدارة الحزم الخاصة pip . يستخدم إدارة ملفات الأنابيب لإدارة تبعيات المشروع داخل بيئة افتراضية باستخدام.

يمكنك تجربة pipenv مباشرة من المتصفح في ملعب Pipenv هذا.

# 3. كوندا

إذا كنت تستخدم توزيعة Anaconda من Python للتطوير ، فيمكنك استخدام conda لإدارة الحزم ولإنشاء بيئات افتراضية.

لمعرفة المزيد ، راجع هذا الدليل الشامل حول إدارة البيئات باستخدام conda.

# 4. شِعر

Poetry هي أداة لإدارة الحزم تتيح لك إدارة التبعيات عبر جميع مشاريع Python. لبدء استخدام Poetry ، يجب أن يكون لديك Python 3.7 أو إصدار أحدث مثبتًا.

# 5. فينف

كما ذكرنا ، تقدم venv مجموعة فرعية من وظائف virtualenv ولكنها تأتي مع ميزة أنها مدمجة في مكتبة Python القياسية ، بدءًا من Python 3.3.

إنه متاح بسهولة مع تثبيت Python - ولا يتطلب تثبيت حزم خارجية. سنستخدمه في هذا البرنامج التعليمي لإنشاء البيئات الافتراضية والعمل معها.

كيفية إنشاء بيئة افتراضية بيثون في أوبونتو

لمتابعة بقية هذا البرنامج التعليمي ، يجب أن يكون لديك تثبيت محلي لـ Python 3. تأكد من أنك تقوم بتشغيل Python 3.5 أو إصدار أحدث.

يوضح هذا القسم خطوات إنشاء البيئات الافتراضية وتنشيطها في جهاز Ubuntu Linux. يمكن استخدام نفس الخطوات في توزيعات Linux الأخرى أيضًا.

لتسهيل الإدارة ، دعنا ننشئ دليل مشروع و cd فيه ؛ سنقوم بإنشاء venv داخل هذا الدليل.

 $ mkdir my_project $ cd my_project

الصيغة العامة لإنشاء بيئة افتراضية لمشروع Python الخاص بك هي python3 -m venv <venv-name-or-path> . عند تشغيل هذا الأمر ، سيتم إنشاء بيئة افتراضية تسمى my_env في دليل العمل الحالي:

 $ python3 -m venv my_env

كيفية تنشيط وتثبيت الحزم داخل بيئة افتراضية

بعد إنشاء البيئة الافتراضية ، يمكنك تنشيطها وتثبيت الحزم المطلوبة فيها. لتنشيط البيئة الافتراضية ، يمكنك تشغيل الأمر التالي:

 $ source my_env/bin/activate

بمجرد تنشيط بيئة افتراضية ، يمكنك تشغيل الأمر pip list للحصول على قائمة الحزم المثبتة:

 $ pip list
صورة 3

لم نقم بتثبيت أي حزمة حتى الآن ، لذا يجب أن تكون قادرًا على رؤية setuptools pip - مثبتة بشكل افتراضي - في كل من البيئات الافتراضية التي تم إنشاؤها.

يتيح لك تثبيت pip داخل البيئة الافتراضية تثبيت الحزم اللازمة للمشروع المحدد ؛ هذا هو سبب وجود بيئة تطوير مستقلة لكل مشروع.

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

 $ pip install requests

عندما تقوم بتثبيت مكتبة الطلبات ، سترى أنه يتم تثبيت مكتبة الطلبات جنبًا إلى جنب مع جميع الحزم المطلوبة من قبلها.

تثبيت المكتبات في بيئة بيثون الافتراضية
 $ pip list
عرض مكتبات في بيئة بيثون الافتراضية

يمكنك استخدام الأمر pip freeze وإعادة توجيه الإخراج إلى ملف requirements.txt ، كما هو موضح:

 $ pip freeze > requirements.txt

إذا قمت بفحص محتويات دليل المشروع الحالي ، فسترى أنه تم إنشاء ملف requirements.txt.

 $ ls # my_env requirements.txt

يمكنك إلغاء تنشيط البيئة الافتراضية بعد العمل في المشروع عن طريق تشغيل الأمر التالي:

 $ deactivate

كيفية إنشاء بيئة افتراضية Python في Windows

بشكل عام ، تُفضل بيئة Linux للتطوير. إذا كنت تستخدم جهازًا يعمل بنظام Windows ، فيمكنك التفكير في استخدام نظام Windows الفرعي لنظام Linux (WSL) لإعداد بيئة Ubuntu الطرفية للتطوير المحلي.

إذا كنت تستخدم جهاز يعمل بنظام Windows ، فيمكنك استخدام Windows PowerShell أو موجه الأوامر وإنشاء بيئات افتراضية باستخدام الأمر التالي:

 > python -m venv <path-to-venv>

كيفية تنشيط بيئة افتراضية

يختلف تنشيط البيئات الافتراضية على جهاز يعمل بنظام Windows اعتمادًا على ما إذا كنت تعمل في موجه الأوامر أو Windows PowerShell.

إذا كنت في موجه الأوامر ، فقم بتشغيل الأمر التالي لتنشيط البيئة الافتراضية:

 > <path-to-venv>\Scripts\activate.bat

بدلاً من ذلك ، إذا كنت تستخدم Windows PowerShell ، فسيؤدي تشغيل هذا الأمر إلى تنشيط البيئة الافتراضية:

 > <path-to-venv>\Scripts\Activate.ps1

يمكنك تثبيت جميع الحزم المطلوبة داخل البيئة الافتراضية.

لإلغاء تنشيط البيئات الافتراضية ، يمكنك تشغيل أمر deactivate — في موجه الأوامر و Windows PowerShell.

استنتاج

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

من بين الأدوات المستخدمة على نطاق واسع لإنشاء البيئات الافتراضية وإدارتها في Python ، تعلمت كيفية استخدام venv - المضمنة في مكتبة Python القياسية لإنشاء بيئات افتراضية وتنشيطها.

داخل البيئة الافتراضية المخصصة للمشروع ، يمكن تثبيت إصدارات المكتبات الخاصة بالمشروع. يمكن بعد ذلك التقاط هذه المتطلبات في ملف requirements.txt ، والذي يسمح للمطورين الآخرين بتكرار بيئة المشروع بسهولة.

عند بدء مشروع Python التالي ، تأكد من استخدام البيئات الافتراضية لإدارة التبعية بشكل أفضل. ترميز سعيد!