آموزش نصب و استفاده از Virtual environment در Python
۱۲ دی ۱۳۹۹
Virtual environment چیست؟
هدف اصلی محیط مجازی (Virtual environment) ایجاد یک محیط ایزوله شده و مجزا برای برنامههای Python است. این بدان معناست که هر پروژهای میتواند صرف نظر از اینکه پروژههای دیگر به چه وابستگیهایی نیاز دارند، وابستگیهای خاص خود را داشته باشد.
برای درک کاربرد محیط مجازی میتوانید دو پروژه مختلف به نامهای ProjectA و ProjectB را در نظر بگیرید که هر کدام از آنها به نسخهی مختلفی از Python نیاز دارند و اگر شما بخواهید تمام وابستگیها را بر روی سیستم اصلی خود نصب کنید، پیچیدگی بسیار زیادی را ایجاد خواهید کرد که در نهایت در زمان تحویل پروژهها نمیتوانید دقیقا مشخص کنید که کدام وابستگیها به کدام پروژه مربوط میشوند.
همچنین محدودیتی در تعداد برای ایجاد محیط مجازی نخواهید داشت و میتوانید بهراحتی با استفاده از virtualenv
یا venv
محیطهای مجازی خود را ایجاد کنید.
نصب و استفاده از محیط مجازی (Virtual environment)
اگر از Python3 استفاده میکنید این قابلیت با استفاده از ماژول venv
که در کتابخانههای استاندارد Python وجود دارد امکانپذیر است. در غیر اینصورت اگر میخواهید در Python2 از قابلیتهای محیط مجازی بهرهمند شوید بایستی virtualenv
را با دستور زیر نصب کنید:
pip install virtualenv
استفاده از محیط مجازی را با ایجاد یک پوشهی جدید شروع میکنیم:
mkdir first-python-virtual-environment && cd first-python-virtual-environment
سپس در قدم بعد میتوانیم محیط مجازی خود را ایجاد کنیم اما تفاوت در دستورها از این مرحله نمایان میشوند زیرا برای ایجاد محیط مجازی در Python2 و Python3 دستورهای متفاوتی وجود دارد:
# Python 2:
virtualenv first-env
# Python 3
python3 -m venv first-env
حال زمان آن رسیده تا محیط مجازی خود را فعال و از آن استفاده کنیم. با اجرای دستور زیر در سیستمعامل Linux میتوانید محیط مجازی خود را فعال و از آن استفاده کنید:
source first-env/bin/activate
اما فعالسازی و استفاده از محیط مجازی در سیستمعامل Windows متفاوت است و میبایستی فایل activate.bat
را در cmd اجرا کنید تا محیط مجازی شما فعال شود:
first-env/Scripts/activate.bat
پس با فعالسازی و ورود به محیط مجازی میتوانید پکیجهای خود را با استفاده از دستور pip install
نصب کنید و یا پکیجهای نصب شده را با دستور pip list
مشاهده کنید و حتی با دستور:
pip freeze > requirements.txt
وابستگیهای پروژه خود را در یک فایل ذخیره کنید و آن را در کنار پروژهتان قرار دهید. این کار باعث میشود تا افراد دیگری که میخواهند بر روی پروژهی شما کار کنند فقط با اجرای دستور:
pip install -r requirements.txt
تمام وابستگیها را با همان نسخهای که در سیستم شما نصب بوده بهعنوان وابستگیهای پروژه نصب کنند و این باعث میشود تا از بسیاری ناهماهنگیها و اشکالها جلوگیری شود.
در مرحله آخر میتوانید از دستور زیر برای خارج شدن از محیط مجازی استفاده کنید:
deactivate
و برای پاک کردن محیط مجازی کافی است تا پوشهی first-python-virtual-environment
را که قبلتر با دستور mkdir
ایجاد کرده بودیم، حذف کنید.
جمعبندی
اگر تابهحال با دردسرهای انتقال و بهاشتراک گذاری پروژه روبرو شده باشید، اهمیت ایجاد محیط مجازی در Python را بهخوبی درک خواهید کرد اما درصورتی که کار با زبان برنامهنویسی Python را بهتازگی شروع کرده باشید توصیه میشود حتما قبل از شروع هر پروژه یک محیط مجازی ایجاد کنید و برنامهی خود را در آن محیط ایزوله شده توسعه دهید. به این صورت از بسیاری مشکلهای عمده در مدیریت وابستگیهای پروژه در امان خواهید ماند و با تسلط بیشتری بر هر پروژه میتوانید به توسعهی برنامههای خود ادامه دهید.
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
jadi
یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.
Arch
EbadiDev
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
vanenshi