148 lines
5.6 KiB
Markdown
148 lines
5.6 KiB
Markdown
---
|
|
title: Virtual Environments
|
|
localeTitle: البيئات الافتراضية
|
|
---
|
|
## بيئة افتراضية
|
|
|
|
يمكن وصف البيئات الافتراضية كأدلة تثبيت معزولة. تسمح لك هذه العزلة بترجمة تثبيت تبعيات مشروعك ، دون إجبارك على تثبيتها على مستوى النظام بأكمله.
|
|
|
|
تخيل أن لديك تطبيقين App1 و App2. كلاهما يتطلب حزمة باك ، ولكن مع إصدارات مختلفة. إذا قمت بتثبيت Pak الإصدار 2.3 لـ App1 ، لن تتمكن من تشغيل App2 ، لأنه يتطلب الإصدار 3.1. هنا عندما تكون البيئات الافتراضية في متناول اليد.
|
|
|
|
فوائد:
|
|
|
|
* يمكن أن يكون لديك بيئات متعددة ، مع مجموعات متعددة من الحزم ، دون تعارض فيما بينها. بهذه الطريقة ، يمكن تلبية متطلبات المشاريع المختلفة في نفس الوقت.
|
|
* يمكنك بسهولة إطلاق مشروعك بوحدات تابعة خاصة به.
|
|
|
|
فيما يلي طريقتان يمكنك إنشاء بيئات بيثون الافتراضية.
|
|
|
|
## Virtualenv
|
|
|
|
[`virtualenv`](https://virtualenv.pypa.io/en/stable/) هي أداة تستخدم لإنشاء بيئات بيثون المعزولة. يقوم بإنشاء مجلد يحتوي على كافة الملفات التنفيذية الضرورية لاستخدام الحزم التي يحتاجها مشروع Python.
|
|
|
|
يمكنك تثبيته مع `pip` :
|
|
|
|
`pip install virtualenv
|
|
`
|
|
|
|
تحقق من التثبيت باستخدام الأمر التالي:
|
|
|
|
`virtualenv --version
|
|
`
|
|
|
|
### إنشاء environemnt
|
|
|
|
لإنشاء استخدام بيئة افتراضية:
|
|
|
|
`virtualenv --no-site-packages my-env
|
|
`
|
|
|
|
يؤدي هذا إلى إنشاء مجلد في الدليل الحالي باسم البيئة ( `my-env/` ). يحتوي هذا المجلد على الدلائل لتثبيت الوحدات النمطية والملفات التنفيذية Python.
|
|
|
|
يمكنك أيضًا تحديد إصدار Python الذي تريد العمل به. ما عليك `--python=/path/to/python/version` استخدام الوسيطة `--python=/path/to/python/version` . على سبيل المثال ، `python2.7` :
|
|
|
|
`virtualenv --python=/usr/bin/python2.7 my-env
|
|
`
|
|
|
|
### قائمة البيئات
|
|
|
|
يمكنك إدراج البيئات المتاحة مع:
|
|
|
|
`lsvirtualenv
|
|
`
|
|
|
|
### تفعيل بيئة
|
|
|
|
قبل أن تتمكن من البدء في استخدام البيئة ، يلزمك تنشيطها:
|
|
|
|
`source my-env/bin/activate
|
|
`
|
|
|
|
هذا يضمن أن يتم استخدام حزم فقط تحت `my-env/` .
|
|
|
|
ستلاحظ ظهور اسم البيئة على يسار المطالبة. بهذه الطريقة يمكنك رؤية ما هي البيئة النشطة.
|
|
|
|
### تثبيت الحزم
|
|
|
|
يمكنك تثبيت الحزم واحدة تلو الأخرى ، أو عن طريق تعيين ملف `requirements.txt` لمشروعك.
|
|
|
|
`pip install some-package
|
|
pip install -r requirements.txt
|
|
`
|
|
|
|
إذا كنت تريد إنشاء ملف `requirements.txt` من الحزم المثبتة بالفعل ، فقم بتشغيل الأمر التالي:
|
|
|
|
`pip freeze > requirements.txt
|
|
`
|
|
|
|
سيحتوي الملف على قائمة بجميع الحزم المثبتة في البيئة الحالية ، والإصدارات الخاصة بها. سيساعدك هذا على إطلاق مشروعك باستخدام الوحدات التابعة الخاصة به.
|
|
|
|
### إلغاء تنشيط بيئة
|
|
|
|
إذا انتهيت من العمل مع البيئة الافتراضية ، يمكنك إلغاء تنشيطها باستخدام:
|
|
|
|
`deactivate
|
|
`
|
|
|
|
هذا يعيدك إلى مترجم Python الافتراضي الخاص بالنظام مع كافة المكتبات المثبتة به.
|
|
|
|
### حذف بيئة
|
|
|
|
ببساطة حذف مجلد البيئة.
|
|
|
|
## كوندا
|
|
|
|
[`Conda`](https://conda.io/docs/index.html) هو حزمة ، والتبعية وإدارة البيئة للعديد من اللغات ، بما في ذلك بايثون.
|
|
|
|
لتثبيت Conda ، اتبع هذه [التعليمات](https://conda.io/docs/user-guide/install/index.html) .
|
|
|
|
### خلق بيئة
|
|
|
|
لإنشاء استخدام بيئة افتراضية:
|
|
|
|
`conda create --name my-env
|
|
`
|
|
|
|
سوف Conda إنشاء مجلد المقابلة داخل دليل التثبيت كوندا.
|
|
|
|
يمكنك أيضًا تحديد إصدار Python الذي تريد العمل معه:
|
|
|
|
`conda create --name my-env python=3.6
|
|
`
|
|
|
|
### قائمة البيئات
|
|
|
|
يمكنك سرد جميع البيئات المتاحة مع:
|
|
|
|
`conda info --envs
|
|
`
|
|
|
|
### تفعيل بيئة
|
|
|
|
قبل أن تتمكن من البدء في استخدام البيئة ، يلزمك تنشيطها:
|
|
|
|
`source activate my-env
|
|
`
|
|
|
|
### تثبيت الحزم
|
|
|
|
نفس الشيء مع `virtualenv` .
|
|
|
|
### إلغاء تنشيط بيئة
|
|
|
|
إذا انتهيت من العمل مع البيئة الافتراضية ، يمكنك إلغاء تنشيطها باستخدام:
|
|
|
|
`source deactivate
|
|
`
|
|
|
|
### قم بإزالة بيئة
|
|
|
|
إذا كنت تريد إزالة بيئة من استخدام Conda:
|
|
|
|
`conda remove --name my-env
|
|
`
|
|
|
|
#### معلومات اكثر:
|
|
|
|
* `virtualenv` [الموقع الرسمي](https://virtualenv.pypa.io/en/stable/)
|
|
* [الموقع الرسمي](https://conda.io/docs/index.html) `Conda`
|
|
* `The Hitchhicker's Guide to Python` [Hitchhicker](http://docs.python-guide.org/en/latest/dev/virtualenvs/) `The Hitchhicker's Guide to Python` - [Pypenv والبيئات الافتراضية](http://docs.python-guide.org/en/latest/dev/virtualenvs/) |