كيفية استخدام Virtualenv في بايثون

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

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

Virtualenv هي أداة تسمح لك بإنشاء بيئات افتراضية وإدارة الحزم في بايثون. كما تساعدك على تجنب تثبيت الحزم على مستوى الجذر؛ حيث يمكن أن تؤدي عمليات التثبيت على مستوى الجذر إلى كسر بعض أدوات النظام أو الحزم الأخرى.

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

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

في هذه المقالة، سنوضح كيفية تثبيت virtualenv في بايثون. ثم سنستكشف كيفية إعداد بيئات افتراضية في بايثون والعمل مع المستودعات.

تثبيت Virtualenv في بايثون

تتيح لك البيئة الافتراضية في بايثون إنشاء بيئة معزولة لمشاريعك. هذا يعني أن مشاريعك يمكن أن يكون لها تبعياتها الخاصة – بشكل مستقل عن تبعيات كل مشروع آخر.

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

البيئات الافتراضية في بايثون هي في جوهرها مجرد أدلة تحتوي على عدد قليل من النصوص البرمجية؛ وبالتالي، يمكنك تعيين أي عدد تريده من بيئات بايثون الافتراضية.

لنقم بتثبيت virtualenv في بايثون!

Virtualenv سهل التثبيت. أولاً، دعونا نقوم بتحديث مدير الحزم pip.

pip install --upgrade pip

بعد ذلك، يمكنك تثبيت virtualenv:

pip install virtualenv

الآن بعد أن تم تثبيت virtualenv، فلنقم بإنشاء بيئة افتراضية في بايثون تسمى mytest:

virtualenv -p python3 mytest

في القسم التالي، سنستكشف استخدام virtualenv في بايثون. يمكنك العثور على مزيد من المعلومات حول virtualenv في وثائق PYTHON الرسمية.

كيفية العمل مع virtualenv والحفاظ عليه في بايثون

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

في ماك أو يونكس

إذا كنت من مستخدمي Mac أو Unix، فيمكنك القيام بذلك على النحو التالي:

source mytest/bin/activate

بعد ذلك، يمكنك التحقق من أنك في بيئة افتراضية باستخدام الأمر التالي:

which Python

يجب أن يكون في الدليل mytest:

.../mytest/bin/python

وهذا كل شيء! يمكنك الآن البدء في تثبيت الحزم المطلوبة لمشروعك.

في الويندوز

إذا كنت من مستخدمي Windows، فيمكنك تنشيط virtualenv بهذه الطريقة:

.\mytest\Scripts\activate

الآن يجب أن تكون المطالبة مسبوقة باسم البيئة الخاصة بك؛ في هذه الحالة، mytest.

بعد ذلك، يمكنك التحقق من وجودك في بيئة بايثون الافتراضية الخاصة بك باستخدام الأمر التالي:

where Python

مثل بيئة Mac أو Unix، يجب أن يشير إلى الدليل mytest:

...\mytest\Scripts\python.exe

الآن يمكنك تثبيت كافة الحزم التي تحتاجها. يمكنك القيام بذلك بشكل فردي أو بمساعدة ملف requirements.txt.

ولكن كيف يعمل virtualenv؟

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

بعد تنشيط بيئة بايثون الافتراضية، أصبح دليل bin الآن في بداية المسار، مما يعني أن الطرفية تستخدم مثيل البيئة الافتراضية الخاصة بك بدلاً من إصدار نظام بايثون.

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

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

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

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

استخدام Virtualenv مع المستودعات

الآن، قد ترغب في دفع مشروعك إلى GITHUB. بعد الانتهاء من العمل في بيئة بايثون الافتراضية، تحتاج أولاً إلى تهيئة المستودع:

git init

ثم، تحتاج إلى تضمين المجلد mytest في ملف .gitignore. بهذه الطريقة، سيتم تجاهل بيئة بايثون الافتراضية في التحكم بالمصادر.

echo 'mytest' > .gitignore

بمجرد الانتهاء من ذلك، يمكننا وضع تبعيات مشروعنا في ملف requirements.txt:

pip freeze > requirements.txt

سيقوم أمر freeze بقراءة التبعيات وإنشاء ملف نصي يحتوي على قائمة التبعيات ورقم الإصدار الخاص بها.

بمجرد الانتهاء من ذلك، نضيف الملف المراد دفعه إلى المستودع:

git add requirements.txt

وأخيرًا، نلتزم بالملفات وندفع المشروع إلى مستودعك.

أريد التأكيد على أهمية ملف requirements.txt هنا. عندما لا يكون الملف موجودًا، قد يكون من الصعب على شخص آخر استخدام المشروع.

على سبيل المثال، لنفترض أن لديك مشروع Open3D للعمل على السحب النقطية وأنك تستخدم JVisualizer لتشغيل المرئيات في Jupyter Notebook. يمكنك استخدام Open3D 0.12.0 لبناء مشروعك؛ لاحقًا، قررت تحميل المشروع على GitHub لمشاركته مع أصدقائك. إذا لم تقم بإضافة ملف requirements.txt وسمحت لأصدقائك بتثبيت أحدث إصدار من Open3D (0.14.1)، فلن يتمكنوا من تشغيل Jupyter Notebook الخاص بك.

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

pip install -r requirements.txt

تعلمنا في هذه المقالة كيفية إعداد بيئة افتراضية في بايثون باستخدام virtualenv وسبب أهميتها. لقد تعلمنا أيضًا كيفية استخدام البيئة الافتراضية جنبًا إلى جنب مع GitHub.

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اكتشاف المزيد من بايثون العربي

اشترك الآن للاستمرار في القراءة والحصول على حق الوصول إلى الأرشيف الكامل.

Continue reading

Scroll to Top