Ail Ahmed نشر 30 يناير أرسل تقرير نشر 30 يناير السلام عليكم 1- virtualenv هي ده مكتبه زي مثل numpy 2- امتي استخدم البيئة الافتراضية 3- هل بتستخدم في الاطار العمل فقط ام المكتبة كمان وبتستخدم في المشاريع الكبير ام الضغير عادي مفيش مشكله 4- وهل في فرق بين لو ان مثل شغل ويب وعاوز اعمل البيئة الافتراضية وبين لو ان شغل فيه المجال تعلم الاله البيئة الافتراضية هل يكون في فرق في الاومر 2 اقتباس
0 Mustafa Suleiman نشر 30 يناير أرسل تقرير نشر 30 يناير virtualenv هي ليست مكتبة، وببساطة الغرض من البيئة الإفتراضية هو إنشاء بيئات افتراضية منفصلة لمشاريع البرمجة المختلفة، أي تعمل تلك البيئات كمساحة معزولة لمشاريعك، مما يسمح لك بإدارة إصدارات Python والمكتبات الخاصة بك بشكل مستقل لكل مشروع. ونستخدم البيئة الافتراضية في جميع أنواع المشاريع، سواء كانت صغيرة أو كبيرة ومع إطار عمل أو مكتبة معينة. ولا يوجد فرق بين استخدام البيئة الافتراضية لمشروع ويب أو مشروع في مجال تعلم الآلة، في كلتا الحالتين، توفر البيئة الافتراضية فوائد مماثلة، مثل العزل والتحكم في إصدارات Python والمكتبات. وبخصوص إنشاء البيئة الإفتراضية ستجد تفصيل هنا: 1 اقتباس
0 Ail Ahmed نشر 30 يناير الكاتب أرسل تقرير نشر 30 يناير بتاريخ 3 دقائق مضت قال Mustafa Suleiman: virtualenv هي ليست مكتبة وببساطة الغرض من البيئة الإفتراضية هو إنشاء بيئات افتراضية منفصلة لمشاريع البرمجة المختلفة، أي تعمل تلك البيئات كمساحة معزولة لمشاريعك، مما يسمح لك بإدارة إصدارات Python والمكتبات الخاصة بك بشكل مستقل لكل مشروع. ونستخدم البيئة الافتراضية في جميع أنواع المشاريع، سواء كانت صغيرة أو كبيرة ومع إطار عمل أو مكتبة معينة. ولا يوجد فرق بين استخدام البيئة الافتراضية لمشروع ويب أو مشروع في مجال تعلم الآلة، في كلتا الحالتين، توفر البيئة الافتراضية فوائد مماثلة، مثل العزل والتحكم في إصدارات Python والمكتبات. وبخصوص إنشاء البيئة الإفتراضية ستجد تفصيل هنا: اول شكراا جدا لحضرتك تاني عن انشاء بيئاء افترضيه اي الفرق بين لو كتبة virtualenv وبعد كده اسم المشروع وي pipenv وكمان venv وكمان يا أ.مصطفي لو سمحت ازي اشغل المشروع جوه البيئه الافترضيه 1 اقتباس
0 حمزة عباد نشر 31 يناير أرسل تقرير نشر 31 يناير وعليكم السلام ورحمة الله وبركاته. هذه الأسئلة جيّدة جدّا لكلّ شخص يتعلّم لغة بايثون. هذه إجاباتي عليها: virtualenv أو venv اختصارا هي وحدة تمثّل جزء من المكتبة القياسيّة في بايثون (Python Standard Library) وظيفتها إنشاء بيئة افتراضية، وهذه تعني نسخة من بايثون مع بعض المكتبات الأساسيّة (مثل pip) والتي توفّر للمبرمج إمكانية تثبيت مكتبات أخرى، بحيث تكون هذه النسخة منفصلة تماما عن النسخة الأصليّة الموجودة على النظام. يتم هذا عن طريق الأمر (على ويندوز): python -m venv c:\path\to\myenv حيث المسار الموجود في النهاية هو المسار الذي تريد إنشاء البيئة الافتراضية فيه. مثلا إذا أردنا إنشاء بيئة افتراضيّة في المجلّد الحالي اسمها env فسنكتب: python -m venv env هكذا نكون قد أنشأنا بيئة افتراضية شبه فارغة. لتشغيل البيئة الافتراضيّة، يتم كتابة الأمر التالي من مجلّد المشروع الذي يحوي البيئة الافتراضية (بافتراض أن اسمها env): على ويندوز باستخدام cmd: env\Scripts\activate.bat على الأنظمة الأخرى باستخدام bash: source env/bin/activate بعد ذلك، يمكن تثبيت أيّة مكتبة مطلوبة باستخدام pip، وسيتم تثبيتها تلقائيّا داخل البيئة الافتراضية: pip install numpy وكل ملف أو مشروع بايثون يتم تشغيله داخل هذه البيئة سوف يستخدم المكتبات المثبّتة تلقائيا. لرؤية جميع المكتبات التي تم تثبيتها في البيئة الحالية (ملاحظة: هذا يتضمّن حتى المكتبات التي لم تقم بتثبيتها أنت، بل تم تثبيتها من طرف الاعتماديّات تلقائيّا): pip freeze وإذا أردت مشاركة المشروع مع غيرك، فمن المستحسن أن يكون هناك ملف يسمى requirements.txt يحوي جميع الاعتماديّات اللازمة لتشغيل المشروع. يمكن كتابة هذا الملف يدويّا، لكن أسهل طريقة لإنشاءه هي باستخدام الأمر: pip freeze > requirements.txt يمكن للشخص الآخر تثبيت الاعتماديّات بعد إنشاء بيئة افتراضيّة عنده عن طريق: pip install -r requirements.txt للخروج من البيئة الافتراضيّة، يمكن ببساطة إغلاق النافذة التي تعمل فيها، أو بطريقة أحسن باستخدام الأمر: deactivate بالنسبة لاستخدام البيئة الافتراضيّة، فمن المفروض أن يتم استخدامها في كل مشروع بايثون يتطلّب تثبيت اعتماديّات (dependencies)، لأن تثبيت الاعتماديّات بدون استخدام بيئة افتراضية يجعلها تثبّت على بيئة النظام مباشرة. كلّما كثرت المشاريع والبرامج التي تستخدم بايثون على الجهاز، وكانت جميعها تثبّت اعتماديّاتها على بيئة النظام، فهنا يزيد احتمال التضارب بين اعتماديّات تلك البرامج والمشاريع، فمثلا، قد يتطلّب أحد المشاريع استخدام آخر نسخة من Numpy، بينما لا يعمل المشروع الآخر بتلك النسخة ويتطلّب نسخة أقدم. في هذه الحالة، سيكون من المستحيل استخدام كل من المشروعين في نفس الوقت، إذ أن تثبيت اعتماديّات واحد منهما سيعطّل عمل المشروع الآخر والعكس. في مثل هذه الحالات، استخدام البيئة الافتراضيّة يصبح ضروريّا، بحيث يتم انشاء بيئة افتراضيّة لكلّ مشروع ويمكن تثبيت اعتماديّات كل مشروع على حدة. الأحسن أن تستخدم البيئة الافتراضية لكلّ المشاريع التي لديها اعتماديّات كما فصّلت في النقطة السابقة. لكن إذا كان عندك مشروع بسيط لا يستخدم سوى بايثون بدون أي مكتبة، فهنا لا حاجة إلى إنشاء بيئة افتراضيّة. استخدام البيئة الافتراضية لا علاقة له بطبيعة المشروع أو تصنيفه أو حجمه أو ماهية المكتبات المستخدمة، البيئة الافتراضيّة تعمل بنفس الطريقة مع كل المكتبات والمشاريع. بتاريخ 9 ساعة قال Ail Ahmed: تاني عن انشاء بيئاء افترضيه اي الفرق بين لو كتبة virtualenv وبعد كده اسم المشروع وي pipenv وكمان venv نعم هناك فرق. في الواقع، خلافا لـvenv التي هي جزء من المكتبة القياسيّة في بايثون، pipenv هي مكتبة بايثون خارجيّة تقوم بنفس دور إنشاء البيئات الافتراضيّة لكنها تملك امكانيّات اضافيّة متقدّمة مقارنة بـvenv، مثل إنشاء بيئة افتراضيّة بشكل تلقائي والتحكّم بالاعتماديّات ونسخها بطريقة أكثر سهولة و مميّزات أخرى كثيرة ومفيدة لتسريع العمل. pipenv ليست المكتبة الوحيدة التي تقوم بهذه الأمور، توجد واحدة أخرى مثلا تسمى Poetry وهي التي أفضّلها شخصيّا وأستخدمها في كل مشاريعي الكبيرة. لكن بالنسبة للمبتدئين في البرمجة باستخدام بايثون (وكذلك بالنسبة لي عندما أعمل على مشاريع صغيرة) فإن استخدام venv هو الأحسن، لأن venv وإن كان ينقصها بعض الميزات إلا أنّ التعامل معها بسيط ويمكن تعلّمها في وقت قصير كما أنّها تأتي مدمجة مع بايثون ولا تحتاج إلى تثبيتها بشكل منفصل. 1 اقتباس
0 Ail Ahmed نشر 31 يناير الكاتب أرسل تقرير نشر 31 يناير بتاريخ 4 ساعة قال حمزة عباد: بعد ذلك، يمكن تثبيت أيّة مكتبة مطلوبة باستخدام pip، وسيتم تثبيتها تلقائيّا داخل البيئة الافتراضية: اه يعني المكتبة او اطار العمل ل هي اساس ان مثبيته علي النظام هرجع اثبته تاني داخل البيئة الافتراضيه تمام كده ان فهمت شكرااا جدا جدا لحضرتك بتاريخ 4 ساعة قال حمزة عباد: لرؤية جميع المكتبات التي تم تثبيتها في البيئة الحالية (ملاحظة: هذا يتضمّن حتى المكتبات التي لم تقم بتثبيتها أنت، بل تم تثبيتها من طرف الاعتماديّات تلقائيّا): pip freeze طيب ليه اي الفرق بين pip list , pip freeze 1 اقتباس
0 El Sayed El Tohamy نشر 31 يناير أرسل تقرير نشر 31 يناير الفرق أن pip list يقوم باستعراض جميع المكتبات بما فيها مكتبات pip نفسها مثل setuptools, wheel، أما pip freeze فإنه يستعرض المكتبات التي قمنا نحن بتثبيتها (وبالطبع الاعتماديات التي تحتاجها)، وتفيدنا هذه الطريقة عندما نريد حفظ قائمة بكل المكتبات - التي قمنا بتثبيتها - في ملف، وبالتالي يمكننا استخدام هذا الملف فيما بعد لتثبيت كل المكتبات بأمر واحد، # الأمر التالي يقوم بحفظ كل المكتبات والاعتماديات في ملف نصي pip freeze > requirements.txt # الأمر التالي يقوم بتثبيت كل المكتبات الذكورة بالملف pip install -r requirements.txt وإذا فتحت الملف نفسه ستجد مسجل فيه المكتبات بشكل يشبه التالي: feedparser==5.1.3 wsgiref==0.1.2 django==1.4.2 2 اقتباس
0 Ail Ahmed نشر 31 يناير الكاتب أرسل تقرير نشر 31 يناير بتاريخ منذ ساعة مضت قال El Sayed El Tohamy: الفرق أن pip list يقوم باستعراض جميع المكتبات بما فيها مكتبات pip نفسها مثل setuptools, wheel، أما pip freeze فإنه يستعرض المكتبات التي قمنا نحن بتثبيتها (وبالطبع الاعتماديات التي تحتاجها)، وتفيدنا هذه الطريقة عندما نريد حفظ قائمة بكل المكتبات - التي قمنا بتثبيتها - في ملف، وبالتالي يمكننا استخدام هذا الملف فيما بعد لتثبيت كل المكتبات بأمر واحد، # الأمر التالي يقوم بحفظ كل المكتبات والاعتماديات في ملف نصي pip freeze > requirements.txt # الأمر التالي يقوم بتثبيت كل المكتبات الذكورة بالملف pip install -r requirements.txt وإذا فتحت الملف نفسه ستجد مسجل فيه المكتبات بشكل يشبه التالي: feedparser==5.1.3 wsgiref==0.1.2 django==1.4.2 تمام , شكراا جداا والله عشان ان كانت هسال ازي نثيبت اكثير من مكتبه في وقت واحد فا كده المعلومات واضح شكراا جدا لحضرتكم 1 اقتباس
0 حمزة عباد نشر 1 فبراير أرسل تقرير نشر 1 فبراير بتاريخ 18 ساعة قال Ail Ahmed: طيب ليه اي الفرق بين pip list , pip freeze بالإضافة إلى الفرق الذي ذكره الأخ السيد التهامي، يوجد فرق آخر ظاهر في نتيجة pip freeze و pip list، يمكننا أن نرى ذلك بتجريب الأمرين: pip list Package Version ----------- -------- pip 23.2.1 PyQt5 5.15.10 PyQt5-Qt5 5.15.2 PyQt5-sip 12.13.0 PyQt5-stubs 5.15.6.0 setuptools 68.2.0 wheel 0.41.2 بينما: pip freeze PyQt5==5.15.10 PyQt5-Qt5==5.15.2 PyQt5-sip==12.13.0 PyQt5-stubs==5.15.6.0 كما ترى، الكتابة التي تظهرها pip list أحسن من ناحية المظهر، وهي موجّهة للإنسان. بينما pip freeze هي مفهومة للآلة، ولهذا هي التي تستخدم لإنشاء الملف requirements.txt ولا يمكن استخدام pip list لإنشاءه لأن ذلك سيجعله غير قابل للقراءة من طرف pip install كما رأينا في الجواب السابق. 1 اقتباس
السؤال
Ail Ahmed
السلام عليكم
1- virtualenv هي ده مكتبه زي مثل numpy
2- امتي استخدم البيئة الافتراضية
3- هل بتستخدم في الاطار العمل فقط ام المكتبة كمان وبتستخدم في المشاريع الكبير ام الضغير عادي مفيش مشكله
4- وهل في فرق بين لو ان مثل شغل ويب وعاوز اعمل البيئة الافتراضية وبين لو ان شغل فيه المجال تعلم الاله البيئة الافتراضية هل يكون في فرق في الاومر
7 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.