أداة virtualenv كأداة لتسهيل البرمجة والعمل بلغة البايثون

أداة virtualenv كأداة لتسهيل البرمجة والعمل بلغة البايثون

من المهم شرح أداة virtualenv لتسهيل العمل أثناء البرمجة بالبايثون. لأنك كمبرمج بايثون، من المؤكد أنك مررت في حالة تريد فيها أن يعمل برنامجك على توزيعتي البايثون 3.5 و 2.7. أو أنك تريد أن تقوم ببناء شيفرة برمجية باستخدام مكتبة مُثبتة لديك ولكن بإصدار أقل أو أعلى، فهل في هذه الحالة ستقوم بحذف المكتبة وإعادة تثبيتها بالإصدار الذي تريد. ماذا عن الحالة الأولى والتي يظن البعض بانها مرعبة، حيث قد يتساءل أحدهم كيف سأثبت إصدارين من البايثون على نفس نظام التشغيل، وكيف سأتعامل مع ذلك؟!

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

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

أداة virtualenv

هذا المقال يتكلم عن:

      1- كيفية بناء بيئة بايثون باستخدام virtualenv 

      2- كيفية تفعيل البيئة

      3- كيفية الخروج منها

      4- كيفية بناء بيئتي بايثون بتوزيعات 3.5 و 2.7 .

لنضرب لكم مثالا عن حالة يتجلى فيها أهمية استخدام الأداة virtualenv.

لنفترض أنك بحاجة لاستخدام المكتبة Fabric في بناء منظومة إدارة خوادم Linux وتحتاج أن تكون هذه المنظومة متوافقة مع الإصدار رقم 1.14 للمكتبة والإصدار رقم 1.12 في نفس الوقت. لن تستطيع تثبيت إصداري المكتبة في نفس توزيعة البايثون المستخدمة (في حالة كانت واحدة ولا يوجد غيرها) لأن طبيعة بناء واستخدام المكتبات الخارجية في البايثون تتطلب وجود إصدار واحد لأي مكتبة في نفس التوزيعة.

في هذه الحالة ينبغي عليك استخدام الأداة virtualenv لبناء بيئتي بايثون وتقوم بتثبيت الإصدارين الذين تريدهما من المكتبة Fabric كل إصدار في بيئة، ولنفترض أن الإصدار رقم 1.14 ستثبته على بيئة A والإصدار رقم 1.12 على البيئة B.

لتشغيل الشيفرة البرمجية الخاصة بالمنظومة المزمعة على إصدار المكتبة 1.14 نقوم بتفعيل البيئة A.

بعد انتهاءنا من العمل على البيئة A نقوم بتفعيل البيئة B لتشغيل المنظومة باستخدام الإصدار 1.12 من المكتبة.

الجانب العملي

توزيعة البايثون المستخدمة في بناء البيئة  هي 3.5 ونظام التشغيل هو Windows 10 ويتم تنفيذ الأوامر في الشاشة الأوامر cmd.

تثبيت أداة virtualenv

pip install virtualenv

للتأكد من أن الأداة تم تثبيتها بنجاح، نفذ الأمر التالي:

virtualenv --version

إنشاء البيئة

لبناء البيئة الأولى A والتي سنعطيها اسم envA نقوم بتنفيذ الأمر التالي:

virtualenv envA

الأمر السابق يقوم بإنشاء مجلد جديد باسم envA في مسار العمل الحالي ومن ثم ينسخ ويُنشئ ملفات البيئة، حيث سيحتوي المجلد على بيئة بايثون جديدة ومصغرة من النسخة 3.5، وستحتوي على مكتبات البايثون الأساسية وستكون خالية من المكتبات الخارجية، بالإضافة لاحتوائها على الأداة pip.

عند تفعيل البيئة، سيكون استخدام pip خاصا بالبيئة الجديدة، ولن يؤثر استخدامها على التوزيعة الرئيسية للبايثون في جهاز الكمبيوتر.

سنقوم بتنفيذ نفس الأمر للبيئة B:

virtualenv envB

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

تفعيل البيئة

لتفعيل البيئة envA نقوم بتشغيل ملف الباتش activate الموجود في مجلد scripts داخل مجلد البيئة:

envA\Scripts\activate

سيظهر لك سطر الأوامر مسبوقا باسم البيئة المُفعلة محاطا بالأقواس هو موضح بالأسفل. الان تستطيع استخدام الأداة pip لتثبيت مكتبة Fabric بنسختها 1.14 مع الانتباه إلى أن ما تقوم بتثبيته خلال البيئة المفعلة سيتم حفظه في مجلد البيئة وليس له علاقة بتوزيعة البايثون المثبتة على جهازك:

(envA)  pip install fabric==1.14

الأن نستطيع تشغيل الشيفرة التي نريدها ونتأكد من عملها مع مكتبة Fabric بالاصدار 1.14:

(envA)  python my_code.py

لتفعيل البيئة envB:

envB\Scripts\Activate

لتثبيت النسخة 1.12 من المكتبة Fabric والتأكد من عمل الشيفرة باستخدامها:

(envB)  pip install fabric==1.12

(envB)  python my_code.py

الخروج من البيئة

عند الإنتهاء من العمل على البيئة وإذا أردنا الخروج منها نُنفذ أمر dactivate من خلال تشغيل الباتش بنفس الاسم والموجود في مجلد Scripts:

(envB) envB\Scripts\deactivate

أو بتنفيذ الأمر مباشرة:

(envB) deactivate

بذلك نكون أتمننا تشغيل شيفرة برمجية واحدة باستخدام بيئتي بايثون مختلفتين ومفصولتين وباستخدام إصدارين مختلفين من المكتبة Fabric مما يجعل الشيفرة Portable مع أكثر من إصدار من المكتبة.

أداة virtualenv وأكثر من توزيعة بايثون

في حالة أردنا أن نجعل الشيفرة البرمجية بالبايثون تعمل على الإصدار 3.5 والإصدار 2.7، فعلينا بناء بيئة لكل توزيعة وأن نطور الشيفرة باستخدام الأداة virtualenv.

سنحتاج في هذه الحالة أن نُخبر الأداة virtualenv من أين تقوم ببناء البيئة، حيث لابد من تحديد مسار التوزيعة التي سنبني منها البيئة.

لبناء بيئة من توزيعة البايثون رقم 3.5 والتي نفترض أنها مثبتة على القرص C:

virtualenv –p c:\Python35\python.exe env35

الخيار p يُحدد المسار الخاص بملف python.exe حسب التوزيعة الموجود بها و env35 هو اسم البيئة.

لتفعيل بيئة من توزيعة البايثون رقم 2.7 والتي نفترض أيضا أنها مثبتة على القرص C:

virtualenv –p c:\Python27\python.exe env2.7

بذلك يكون لدينا بيئة بالإصدار 3.5 من البايثون وأخرى بالإصدار 2.7. نقوم بتفعيل البيئة التي نريدها عند الحاجة.

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

 

 

اترك تعليقاً

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