ما هو virtualenv؟ وكيف تستخدمه مع python

شرح عن virtualenv؟ وكيف تستخدمه مع python

زياد العتيبيمنذ 4 سنوات

virtualenv

virtualenv هي اداة لتحميل python packages  في بيئة معزولة لكل مشروع بدلا من ان تحملها على مسار تثبيت python في windows. 

لماذا نستخدمه؟

افترض انك عملت مشروع قبل عدة سنوات وقد حملت عدة packages والان تريد عمل مشروع جديد باستخدام تلك packages لكن اصدارها قديم وتريد تحديثها. ان حدثت packages قد لا يعمل مشروعك القديم. ايضا لو حملت برنامج python وكان يستخدم اصدار قديم من المكتبات مكتوبة في requirements.txt وتريد تحميلها هنا الافضل تستخدم virtual environment.  من الافضل عمل virtual environment دائما مع اي مشروع.

كيف نستخدمه؟

يوجد طريقتين:

1)  venv module يأتي محملا مع python 3.3 او اعلى ويدعم python 3

2) virtualenv يحتاج ان تحمله ويدعم python 2 وpython 3

في هذا الدرس سنستخدم venv لان لا داعي لتحميل مكتبة خارجية ونحن نستخدم python 3

افتح سطر الاوامر واذهب لمجلد تريد تشغيل برامج python عليه عبر الامر cd مثال:

 

cd Desktop/folder1

بعد ذلك نريد عمل virtual environment في هذا المجلد. نعمله كالآتي

python -m venv <name>

للwindows استخدم python كما هي وللmacOS وlinux استخدم python3

بدلا من <name> ضع اسم virtual environment يفضل تختار نفس الاسم كل مرة لكي لا تنساه. انا استخدم

python -m venv env

نأتي الان لتفعيله عبر سطر الاوامر

للmacOS وlinux هذا الامر

source <name>/bin/activate

وللwindows هذا الامر

<name>\Scripts\activate

مكان ال<name> يكون اسم virtual environment مثلا اذا اسميته env يكون لل windows

env\Scripts\activate

ونفس الشيء مع macOS وlinux.

حينها سيظهر في سطر الاوامر اسم الvirtual environment قبل الpath والان تستطيع تحميل packages وتشغيل برامج python داخل الvirtual environment. 

واي packages تحمله سيكون موجودا داخل مجلد المشروع باسم venv.

هناك بعض الIDEs تدعم الvirtualenv وتستعمله بدون اوامر مثل pycharm فهو يعمل virtual environment كل مرة تعمل مشروع فيه. وأيضا visual studio code يمكنك من اختيار اي virtual environmen تريد العمل عليه.

عند عمل virtual environment تأكد من انك تعمل ignore للمكتبات داخل البروجكت عند رفعها على github لانها ستاخذ مساحة كبيرة.

والطريقة انك تضع اسماء المكتبات في ملف text ومن يحمل برنامجك يستخدم امرا ويحمل كل المكتبات.

بهذا الامر 

pip freeze > requirements.txt

بهذا الأمر سيعمل ملف اسمه requirements.txt فيه كل اسماء المكتبات مع اصدارها. والان اي واحد يحمل برنامجك من github ويريد تشغيله بنفس الenvironment حقك لكي يشغل البرنامج مع وجود المكتبات يعمل هذا الامر

pip install -r requirements.txt

والان عند رفع برنامجك على github لا تحتاج رفع المكتبات انما اكواد برنامجك فقط وكيف تعمل ذلك؟

بعمل ملف وتسميه .gitignore 

ويكون داخله

venv/

venv هو اسم المجلد اللي فيه المكتبات.

 

كلمات دليلية: python virtualenv
2
إعجاب
3612
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !