اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

و عليكم السلام .
نعم , في أغلب الحالات فأنة يستحسن العمل في مشاريع الpython في بيئة افتراضية .
و ذلك ليكون كل مشروع مستقل و معزول عن الباقي و الحزم الذي يحتاجها المشروع تكون مخصصة له فقط .
و ذلك يكون إتباعا لمبدأ برمجي شهير يدعى Dependency Isolation .
كما أنة أيضا في حالة أن كل مشروع له بيئة معزولة فإن ذلك يسهل من عملية الdeployment .

  • 0
نشر

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

اقتباس

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

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

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...