مرحبا يا صديقي!
سأفترض أن pip و virtualenv لا تزال تستخدم للتحكم في بيئة Python في مشروعك.
إذا كان الأمر كذلك ، دعني أخبرك عن أداة مثل Pipenv.
Pipenv هي أداة حديثة لإدارة بيئة العمل في Python.
الميزات الرئيسية ل pipenv:
- إنشاء وإدارة بيئة افتراضية
- مزامنة حزمة Pipfile أثناء تثبيت الحزمة وإزالتها
- التحميل التلقائي لمتغيرات البيئة من ملف .env
كمثال جيد ، قارن استخدام pip و virtualenv مع pipenv لإنشاء بيئة افتراضية:
نقطة و virtualenv
$ virtualenv venv $ source venv/bin/activte $ pip install Flask gunicorn $ pip freeze > requirements.txt
بيبينف
$ 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
مثال على تطبيق Flask باستخدام ميزات Pipenv: github.com/fdhadzh/flask-pipenv-example.