إدارة بيئة Python مع Pipenv

مرحبا يا صديقي!


سأفترض أن pip و virtualenv لا تزال تستخدم للتحكم في بيئة Python في مشروعك.


إذا كان الأمر كذلك ، دعني أخبرك عن أداة مثل Pipenv.


Pipenv هي أداة حديثة لإدارة بيئة العمل في Python.


الميزات الرئيسية ل pipenv:


  • إنشاء وإدارة بيئة افتراضية
  • مزامنة حزمة Pipfile أثناء تثبيت الحزمة وإزالتها
  • التحميل التلقائي لمتغيرات البيئة من ملف .env

كمثال جيد ، قارن استخدام pip و virtualenv مع pipenv لإنشاء بيئة افتراضية:


  1. نقطة و virtualenv


    $ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt 

  2. بيبينف


     $ pipenv install Flask gunicorn 


الشروع في العمل


قم بتثبيت أحدث إصدار من pipenv:


 $ pip install pipenv 

إدارة بيئة العمل


دعنا نذهب إلى الدليل مع مشروع Python وننشئ بيئة افتراضية تحدد إصدار المترجم:


 $ cd yourproject $ pipenv --python 3.7 

سيقوم الفريق تلقائيًا بإنشاء بيئة افتراضية جديدة لمشروعك إذا لم تكن موجودة بالفعل.


يمكنك تنشيط البيئة الافتراضية للمشروع من خلال تنفيذ أمر shell :


 $ pipenv shell 

للخروج من هيكل البيئة الافتراضية ، استخدم exit :


 $ exit 

إدارة التبعية للتطبيق


لتثبيت الحزم ، استخدم أمر install :


 $ pipenv install Flask 

سيقوم Pipenv بتثبيت أحدث إصدار من حزمة Flask وإضافته تلقائيًا إلى Pipfile.


أثناء التثبيت ، يمكننا تحديد إصدار محدد من الحزمة:


 $ pipenv install Flask==1.0.2 

اهتم مطورو هذه الأداة أيضًا بالعمل مع بيئة التطوير - الحزم المطلوبة في مرحلة التجميع أو اختبار التطبيقات.


إذا حددت علامة --dev ، فسيتم تثبيت الحزمة كجزء من بيئة التطوير:


 $ pipenv install pytest --dev 

لتثبيت جميع الحزم ، بما في ذلك حزم بيئة التطوير ، يجب تشغيل:


 $ pipenv install --dev 

لإلغاء تثبيت حزم ، هناك أمر uninstall :


 $ pipenv uninstall Flask 

يتم تخزين المعلومات حول الحزم المثبتة وتبعياتها في ملف Pipfile.lock ، الذي يتم إنشاؤه تلقائيًا ولا يجب على المستخدم تغييره.


تشغيل كود المصدر


من الممكن تشغيل كود المصدر داخل shell virtualenv:


 $ pipenv run python yourapplication.py 

إذا كان هناك ملف .env ، فإن $ pipenv shell و $ pipenv run ستقوم تلقائيًا بتحميل متغيرات البيئة منه:


 $ cat .env DEBUG=1 $ echo $DEBUG 1 

نشر التطبيق


يتيح لك Pipenv تثبيت التبعيات على النظام الأصلي عن طريق تحديد --system flag:


 $ pipenv install --system 

هذا مفيد عند نشر التطبيقات في Docker.


إذا حددت علامة --deploy ، فسوف يلقي pipenv خطأ إذا تم إيقاف Pipfile.lock أو إذا كان إصدار Python لا يتطابق مع الإصدار المحدد.


مثال على Dockerfile للعمل مع pipenv:


 FROM python:3.7 RUN pip3 install pipenv WORKDIR /usr/src/app COPY Pipfile ./ COPY Pipfile.lock ./ RUN set -ex && pipenv install --deploy --system COPY . . 

مثال على تطبيق Flask باستخدام ميزات Pipenv: github.com/fdhadzh/flask-pipenv-example.

Source: https://habr.com/ru/post/ar413009/


All Articles