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

السؤال

نشر

السلام عليكم

1- virtualenv هي ده مكتبه زي مثل numpy 

2- امتي استخدم البيئة الافتراضية 

3- هل بتستخدم في الاطار العمل فقط ام المكتبة كمان وبتستخدم في المشاريع الكبير ام الضغير عادي مفيش مشكله

4- وهل في فرق بين لو ان مثل شغل ويب وعاوز اعمل البيئة الافتراضية وبين لو ان شغل فيه المجال تعلم الاله البيئة الافتراضية هل يكون في فرق في الاومر

Recommended Posts

  • 0
نشر

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

ونستخدم البيئة الافتراضية في جميع أنواع المشاريع، سواء كانت صغيرة أو كبيرة ومع إطار عمل أو مكتبة معينة.

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

وبخصوص إنشاء البيئة الإفتراضية ستجد تفصيل هنا:

 

  • 0
نشر
بتاريخ 3 دقائق مضت قال Mustafa Suleiman:

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

ونستخدم البيئة الافتراضية في جميع أنواع المشاريع، سواء كانت صغيرة أو كبيرة ومع إطار عمل أو مكتبة معينة.

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

وبخصوص إنشاء البيئة الإفتراضية ستجد تفصيل هنا:

 

اول شكراا جدا لحضرتك

تاني عن  انشاء بيئاء افترضيه اي الفرق بين لو كتبة virtualenv  وبعد كده اسم المشروع وي pipenv  وكمان venv

وكمان يا أ.مصطفي لو سمحت ازي اشغل المشروع جوه البيئه الافترضيه

  • 0
نشر

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

  1. 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

     

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

تاني عن  انشاء بيئاء افترضيه اي الفرق بين لو كتبة virtualenv  وبعد كده اسم المشروع وي pipenv  وكمان venv

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

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

  • 0
نشر
بتاريخ 4 ساعة قال حمزة عباد:

بعد ذلك، يمكن تثبيت أيّة مكتبة مطلوبة باستخدام pip، وسيتم تثبيتها تلقائيّا داخل البيئة الافتراضية:

 

اه يعني المكتبة او اطار العمل ل هي اساس ان مثبيته علي النظام هرجع اثبته تاني داخل البيئة الافتراضيه تمام كده ان فهمت 

شكرااا جدا جدا لحضرتك

 

بتاريخ 4 ساعة قال حمزة عباد:

لرؤية جميع المكتبات التي تم تثبيتها في البيئة الحالية (ملاحظة: هذا يتضمّن حتى المكتبات التي لم تقم بتثبيتها أنت، بل تم تثبيتها من طرف الاعتماديّات تلقائيّا):

pip freeze

طيب ليه اي الفرق بين pip list , pip freeze

  • 0
نشر

الفرق أن 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

 

  • 0
نشر
بتاريخ منذ ساعة مضت قال 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

 

تمام , شكراا جداا والله 

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

فا كده المعلومات واضح

شكراا جدا لحضرتكم

  • 0
نشر
بتاريخ 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 كما رأينا في الجواب السابق.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...