وبلاگِ آریان

Python Virtual Environments

Virtual Environments چیست؟

تصور کنین که برای خودتون یک پروژه دارین که خودتون روی اون کار میکنین و داخل شرکت هم دارین روی یک پروژه دیگه کار میکنین. تا اینجا مشکلی وجود نداره اما مشکل جایی بوجود میاد که پروژه شما مثلا از جنگو 3 استفاده میکنه و پروژه شرکت روی جنگوی 2 هست. اینجاست که نه میشه 2 تا جنگو مختلفو نصب کرد و نه میشه کاری رو کنار گذاشت. اسنجاست که Virtual Environments قهرمان وارد کار میشه.

به این پست از سری صفر تا خیلی خوش اومدین.
اگه بخوایم از چند تا نسخه مختلف از پکیج های پایتونی رو برای پروژه های مختلف داشته باشیم راهی ساده تر جز استفاده از Virtual Environments نیست.
درضمن در ادامه Virtual Environments رو virtualenv میگم تا ساده تر بشه.

virtualenv چیست و چطور کار میکنه؟

خب اگه بخوام بحث رو بیشتر باز کنم باید بگم که
فکر کنین پروژه A با پایتون 3.6 و جنگو 2.7 و PTB 10 کار میکنه و پروژه B داره با پایتون 3.9 و جنگو 3.0.3 و PTB 13 دولپ میشه.
خب اینجا چند تا راه کار جلوی شماس
اولیش اینه که دو تا ماشین داشته باشین که خب برای دوتا پروژه میشه بازم روش فکر کرد ولی اگه پنج تا پروژه بود چی؟
راه دوم اینه که از ماشین مجازی استفاده کنین که راه معقولی هست و میشه روش فکر کرد ولی باید بدونین که باید درد سر های نصب OS رو هم داشته باشین و فضای هاردتون هم جوابگو باشه.
اما راه سوم اینه که از virtualenv استفاده کنین که حجمش کمه، استفادش راحته و سریعه.

virtualenv برای ما کلون هایی از پایتون نصب روی سیستممنون درست میکنه که هرکدوم مستقلا کار میکنه و هیچ تداخلی بینشون نیست نه بین virtualenv و سیستم اصلی و نه بین virtualenv مجزا.

نصب virtualenv

حالا که متوجه شدیم virtualenv کارش چیه و وقتشه که نصبش کنیم و اون رو روی سیستممون داشته باشیم.
برای نصب virtualenv مثل پکیج های پایتونی دیگه فقط کافیه با pip دستور زیر رو توی ترمینالمون وارد کنیم:

pip install virtualenv

حالا برسی میکنیم ببینیم نصب شده یا نه:

virtualenv --version

ساخت virtualenv

روش استفاده از virtualenv مثل نصب کردنش آسونه
برای ساخت یک محیط مجازی کافیه از کامند زیر استفاده کنین تا یک محیط مجازی براتون ایجاد بشه:

python -m virtualenv <virtualenv-name>
or
python -m venv <virtualenv-name>

زمانی که یکی از کامند های بالا رو اجرا کنین براتون پوشه ای با این نام <virtualenv-name> ایجاد میکنه.

چطور میشه از نسخه های مختلف پایتون استفاده کرد؟

جوابش ساده است، اول باید نسخه پایتونی که میخواین رو روی سیستمتون نصب کنین.
برای مثال من میخوام پایتون 3.6 رو برای virtualenv داشته باشم.
قدم بعدی اینه که باید بدونین این نسخه ای که نصب کردین کجا نصب شده.
برای این کار کامند زیر رو توی ترمینالتون وارد کنین و مسیری که پایتون نصب هست رو کپی کنین:

where python

Output:
C:\Users\DevDon\AppData\Local\
Programs\Python\Python36\python.exe

حالا باید با استفاده از دستور زیر به virtualenv بگیم که برو از این پایتون یک محیط مجازی درست کن:

python -m virtualenv -p <python-path> <virtualenv-name>
or
python -m venv -p <python-path> <virtualenv-name>

خب الان برای ما پوشه <virtualenv-name> رو ساخت با نسخه پایتون مورد نظرمون.

استفاده از virtualenv

فعالسازی

تا اینجای کار ما تونیستیم پوشه اینوایرمنتمون رو ایجاد کنیم حالا باید اون رو فعال کنیم تا بتونیم داخل این محیط کار کنیم.
برای فعال سازی از دستور زیر استفاده کنین:

On Unix or MacOS:
source <virtualenv-name>/bin/activate
or
source <virtualenv-name>/bin/activate
.bat

On Windows:
<virtualenv-name>\Scripts\activate
or
<virtualenv-name>\Scripts\activate.bat

همون طور که میبینین توی خط آخر هر سیسم عامل .bat نوشتم، این رو اگه کامند اول جواب نداد استفاده کنین.

تبریک میگم شما الان باموفقیت virtualenv خودتون رو فعال کردین حالا میتونین هر پکیجی رو با پیپ و این آموزش و این یکی نصب کنین.

غیر فعالسازی

بعد از این که کارتون تموم شد میتونین ترمینال رو ببندین ولی پیشنهاد میشه تا محیط مجازیتون رو غیرفعال کنین.
برای این کار هم میتونین از کامند های زیر استفاده کنین:

On Unix or MacOS:
source <virtualenv-name>/bin/deactivate
or
source <virtualenv-name>/bin/deactivate
.bat

On Windows:
<virtualenv-name>\Scripts\deactivate
or
<virtualenv-name>\Scripts\deactivate.bat

خب این مقالمون هم تموم شد اما هنوز چیز های دیگه ای هم از این ابزار مونده
که توی قسمت های بعدی مینویسم پس منتظر باشین.

ممنون از این که توی این آموزش هم همراه من بودین .

آریان:))

منبع1
منبع2

تصویر آریان عمرانی

آریان عمرانی

برنامه نویس و گیک عاشق ساختن