مخطط مساعد لبيئة Python venv

بعض أوامر venv المفيدة

Page content

Venv هو أداة إدارة بيئات افتراضية من خلال سطر الأوامر. أداة أبسط بكثير مقارنة بـ Anaconda. إليك بعض الأوامر المفيدة لـ Venv.

يحاول بايثون فتح صندوق خشبي.

من أجل أن تكون على اطلاع، هناك أداة أفضل، من وجهة نظري، لإدارة حزم وبيئات بايثون مقارنة بـ venv - uv. تحقق منها: uv - أداة إدارة جديدة لحزم بايثون والمشاريع والبيئات

قائمة مختصرة بأوامر Venv

إنشاء بيئة افتراضية

  • الأوامر القياسية (Python 3.3 فما فوق):

    python -m venv venv
    

    هذا ينشئ بيئة افتراضية تُدعى venv في الدليل الحالي.

  • مع إصدار محدد من Python (إذا كان مثبتًا):

    python3.10 -m venv venv
    

    أو باستخدام virtualenv:

    virtualenv -p /usr/local/bin/python3.10 venv
    

    (يتطلب حزمة virtualenv).

تفعيل البيئة الافتراضية

  • في ويندوز:
    .\venv\Scripts\activate
    
  • في macOS/Linux:
    source venv/bin/activate
    
    يجب أن يظهر الآن اسم البيئة في شاشة الأوامر.

إيقاف تفعيل البيئة الافتراضية

  • في جميع الأنظمة:
    deactivate
    
    هذا يعيدك إلى بايثون النظام.

تثبيت الحزم

  • باستخدام pip:
    pip install
    
    مثال:
    pip install numpy pandas
    
  • تحديث pip (الموصى به):
    python -m pip install --upgrade pip
    

تجميد وتصدير متطلبات البيئة

  • حفظ الحزم الحالية في البيئة:
    pip freeze > requirements.txt
    
  • تثبيت من ملف المتطلبات:
    pip install -r requirements.txt
    
    تأكد من تفعيل البيئة الافتراضية قبل تشغيل هذه الأوامر.

إزالة بيئة افتراضية

deactivate
rm -rf <env path>

الأخطاء الشائعة عند إدارة بيئات بايثون الافتراضية

نسيان تفعيل البيئة الافتراضية

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

عدم تثبيت إصدارات الحزم بدقة

  • استخدام محددات الإصدار المطورة (مثل >= بدلًا من ==) في ملف requirements.txt تُضعف التكرار. تثبيت الإصدارات بدقة يضمن أن كل من يعمل على المشروع يستخدم نفس إصدارات الحزم، مما يمنع المشكلات غير المتوقعة أثناء النشر أو التعاون.

خلط البيئة العالمية والبيئات الافتراضية

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

تضميد بيئات الافتراضية في التحكم بالإصدار

  • تضمين دليل البيئة الافتراضية (مثل venv/) في التحكم بالإصدار يزيد من حجم المستودعات ويكون غير ضروري. أضف دائمًا دليل venv إلى .gitignore للحفاظ على نظافة مستودعك.

تجاهل فصل الاعتماديات بين التطوير والتشغيل

  • فشل التمييز بين الاعتماديات بين التطوير والتشغيل يمكن أن يؤدي إلى نشرات مزدحمة أو غير آمنة. استخدم ملفات متطلبات منفصلة أو أقسام تكوين لكل منهما.

غياب الوثائق والتوحيد

  • عدم وثاقة خطوات إعداد البيئة أو فشل توحيد العملية (باستخدام النصوص أو Makefiles) يجعل ترحيب المساهمين الجدد وإعادة إنشاء البيئات أكثر صعوبة.

عدم تنظيف البيئات القديمة بانتظام

  • مع مرور الوقت، يمكن أن تتراكم بيئات الافتراضية غير المستخدمة، مما يهدر مساحة القرص ويسبب الارتباك. قم بحذف البيئات القديمة بانتظام للحفاظ على مساحة عمل نظيفة.

تجاهل الحدود بين بايثون النظام ومديري الحزم

  • تعديل بايثون النظام أو خلط مديري الحزم النظامية مع pip يمكن أن يدمر أدوات النظام ويؤدي إلى مشكلات صعبة التشخيص. استخدم دائمًا بيئات venv لاعتماديات المشاريع وتجنب التدخل مع الحزم المدارة من قبل النظام.

جدول ملخص للأخطاء الشائعة

الأخطاء الشائعة التأثير
نسيان تفعيل venv تثبيت الحزم في البيئة الخاطئة
عدم تثبيت إصدارات الحزم بدقة بناء غير متوقع، أخطاء صعبة التكرار
خلط البيئة العالمية والبيئات الافتراضية تعارضات في الاعتماديات/الإصدارات
تضميد دليل venv في التحكم بالإصدار مستودعات مزدحمة، غير منظمة
عدم فصل الاعتماديات بين التطوير والتشغيل نشرات مزدحمة/غير آمنة
غياب الوثائق والتوحيد صعوبة في ترحيب المساهمين، إعدادات غير متسقة
عدم تنظيف البيئات القديمة هدر مساحة القرص، الارتباك
تعديل بايثون النظام أو الحزم عدم استقرار النظام، أدوات معطوبة

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

الفروقات الرئيسية بين Conda وبيئات الافتراضية لضمان التكرار

الميزة بيئات Conda بيئات الافتراضية لبايثون (venv/virtualenv)
نطاق الإدارة تُدير حزم بايثون و الاعتماديات غير البايثونية (مثل المكتبات النظامية، المترجمين) تُدير فقط حزم بايثون عبر pip
التحكم في إصدارات بايثون يمكن تحديد وإثبات أي إصدار من بايثون لكل بيئة تستخدم الإصدار المثبت من بايثون النظام
التوافق عبر الأنظمة أكثر توافقًا عبر أنظمة التشغيل المختلفة (ويندوز، ماك أو إس، لينكس) بسبب إدارة جميع الاعتماديات تعتمد على مكتبات النظام، والتي قد تختلف حسب النظام
مصادر الحزم تستخدم مصادر Conda (الملفات المُ complied مسبقًا، المجموعة العلمية) تستخدم PyPI (pip) للحزم البايثونية
التكرار أعلى لمشاريع معقدة أو العلمية أو متعددة اللغات؛ يمكن تصدير البيئة الكاملة (conda env export) جيدة للمشاريع البايثونية النقيّة؛ قد تفتقر إلى التكرار إذا تضمنت الاعتماديات النظامية
الاعتماديات غير البايثونية يمكن تثبيتها وإدارتها (مثل OpenBLAS، libpng) لا يمكن إدارتها؛ يجب تثبيتها بشكل منفصل
تصدير/استيراد البيئات conda env export / conda env create لضمان التكرار الكامل pip freeze > requirements.txt / pip install -r requirements.txt (الحزم البايثونية فقط)
الأداء أسرع وأكثر موثوقية لحزم علمية كبيرة (مثل numpy، pandas) قد تتطلب تجميعها من المصدر، خاصة في ويندوز
التعقيد زيادة قليلة في التكوين والإدارة خفيفة، أبسط للمشاريع البايثونية البسيطة

ملخص النقاط الرئيسية

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

  • بيئات الافتراضية لبايثون (venv/virtualenv) خفيفة ورائعة لعزل الاعتماديات البايثونية في مشاريع البايثون النقيّة. ومع ذلك، لا تُدير الاعتماديات على مستوى النظام أو غير البايثونية، لذا قد يتأثر التكرار إذا اعتمد مشروعك على مكتبات خارجية أو تكوينات نظام معينة.

  • تصدير ومشاركة البيئات: تسمح Conda لك بتصدير مواصفات البيئة الكاملة (conda env export)، بما في ذلك جميع الاعتماديات وأصداراتها، والتي يمكن إعادة إنشائها بدقة في أماكن أخرى. أما مع بيئات الافتراضية، فإن pip freeze تلتقط فقط الحزم البايثونية، وليس الاعتماديات النظامية أو إصدار مفسر بايثون.

  • الخاتمة
    استخدم Conda للحصول على أقصى درجة من التكرار في المشاريع العلمية أو متعددة الأنظمة أو المشاريع المعقدة. استخدم بيئات الافتراضية لبايثون لمشاريع بايثون خفيفة الوزن حيث لا تُعد الاعتماديات على مستوى النظام أمرًا مقلقًا.

روابط مفيدة