بدء استخدام البيئات الافتراضية في لغة بايثون
نشرت: 2022-11-07في هذه المقالة ، ستتعلم كيفية بدء استخدام البيئات الافتراضية في Python ، في كل من أنظمة تشغيل Windows و Linux.
عندما تبدأ العمل في مشاريع متعددة في بيئة التطوير المحلية الخاصة بك ، ستواجه غالبًا مشكلات التبعية. يمكن أن يساعدك إنشاء بيئات افتراضية لكل مشروع من مشاريعك في إدارة التبعيات ومتطلبات المشروع بشكل أفضل.
للاستفادة من ميزة البيئات الافتراضية في Python ، دعنا نتعلم إنشاء البيئات الافتراضية وتنشيطها.
ما هي البيئات الافتراضية؟
البيئات الافتراضية هي بيئات معزولة ومستقلة تحتوي على رمز وتبعيات المشروع.
لكن لماذا يجب عليك استخدام البيئات الافتراضية؟
حسنًا ، تسمح لك البيئات الافتراضية بتثبيت واستخدام إصدارات مختلفة من نفس المكتبات لمشاريع مختلفة. يضمن استخدام البيئات الافتراضية أيضًا عدم وجود تغييرات مفاجئة عندما يستخدم مشروعان أو أكثر إصدارات مختلفة. دعونا نفهم هذا بمزيد من التفصيل.
تثبيت الحزم في بايثون
تأتي مكتبة Python القياسية مزودة بالعديد من الوحدات النمطية المفيدة لاختبار الوحدة ، والتفاعل مع نظام التشغيل ، والعمل مع التواريخ والأوقات ، والمزيد.
ومع ذلك ، عند العمل في مشاريع Python ، ستحتاج غالبًا إلى تثبيت حزم أخرى - تم تطويرها بواسطة مجتمع Python. هذا صحيح بشكل خاص للتطبيقات مثل تجريف الويب لجمع البيانات والتعلم الآلي وتطبيقات الويب.
لتثبيت هذه الحزم وإدارتها ، يمكنك استخدام conda أو pip.
يتطلب كل مشروع مجموعة محددة من الحزم التي تحتاج إلى تثبيتها. ومع ذلك ، عند تثبيت جميع الحزم في بيئة التطوير الخاصة بك على جهازك المحلي ، فإن جميع المشاريع تشترك في الحزم المثبتة عالميًا.

ذلك هو السبب في هذه المشكلة؟
حسنًا ، قد يكون لديك حزم 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

لم نقم بتثبيت أي حزمة حتى الآن ، لذا يجب أن تكون قادرًا على رؤية 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 التالي ، تأكد من استخدام البيئات الافتراضية لإدارة التبعية بشكل أفضل. ترميز سعيد!