Virtualenv یک ابزار مدیریت محیط مجازی در پایتون است که به توسعهدهندگان این امکان را میدهد برای هر پروژه، یک محیط نرمافزاری مستقل و ایزوله ایجاد کنند. محیطهای مجازی از تداخل بین پروژهها جلوگیری میکند و به کاربران اجازه میدهد که نسخههای مختلفی از کتابخانهها را بدون ایجاد مشکل در پروژههای خود، نصب و استفاده کنند. استفاده از Virtualenv برای مدیریت وابستگیهای پروژههای پایتون میتواند فضایی برای آزمایش و تست تغییرات در کدها فراهم آورد.
virtualenv چیست؟
Virtualenv یک ابزار کاربردی در برنامهنویسی پایتون است که امکان ایجاد محیطهای جداگانه برای هر پروژه را فراهم میکند. این محیطها مستقل از یکدیگر بوده و هرکدام میتوانند نسخههای مختلف پایتون و مجموعهای از کتابخانهها و وابستگیهای نرمافزاری خود را داشته باشند. استفاده از Virtualenv به توسعهدهندگان اجازه میدهد تا بدون نگرانی از تداخل بین پروژهها، چندین نسخه متفاوت از پایتون و کتابخانههای آن را بر روی یک سیستم یا ماشین مدیریت کنند. این امر به ویژه در پروژههای مختلف با نیازمندیهای متفاوت مفید است.
مزایای استفاده از Virtualenv
جداسازی محیطهای توسعه
استفاده از Virtualenv به شما امکان میدهد که چندین محیط مجازی را به طور همزمان مدیریت کنید، که هر یک از آنها میتواند نسخهها و وابستگیهای متفاوتی داشته باشند. این تفکیک اطمینان میدهد که تغییرات اعمال شده در یک پروژه بر دیگر پروژههای در حال توسعه تاثیر نمیگذارد و محیط توسعهی هر پروژه به صورت کاملا مستقل و ایزوله باقی میماند.
نصب و راهاندازی آسان
Virtualenv نصب و راهاندازی محیطهای مجازی را به شکلی بسیار ساده و سریع امکانپذیر میسازد. با استفاده از چند دستور ساده، توسعهدهندگان میتوانند یک محیط کاملا مجهز و آماده به کار را راهاندازی کنند، که این کار به آنها اجازه میدهد تا بلافاصله به توسعه و تست پروژههای خود بپردازند. این فرآیند سریع و آسان باعث صرفهجویی در زمان و کاهش دغدغههای مربوط به مدیریت محیطهای توسعه میشود.
بدون نیاز به دسترسی root
Virtualenv علاوه بر قابلیتهای فراوان، در هر شرایطی کاربرد دارد، حتی وقتی دسترسی به سطح دسترسی ریشه (root) نیست. به ویژه در محیطهای هاستینگ اشتراکی که امکان نصب بستهها به صورت global ممکن نیست، این ابزار به شما اجازه میدهد که نیازهای نرمافزاری خود را به صورت محلی نصب و مدیریت کنید، بدون نیاز به دسترسی خاص و با حفظ امنیت در پروژهتان.
چگونگی ایجاد و استفاده از Virtualenv
ایجاد و استفاده از محیط مجازی با virtualenv بسیار ساده است. در این بخش، به مراحل ایجاد یک محیط مجازی و نحوه فعال سازی آن میپردازیم:
نصب Virtualenv
برای نصب virtualenv، میتوانید از pip، مدیر بستههای پایتون استفاده کنید:
pip install virtualenv
بعد از نصب پکیج virtualenv میتوانید با دستور زیر صفحه help این ابزار را ببینید:
ایجاد یک محیط مجازی
برای ایجاد محیط مجازی، دستور زیر را در ترمینال خود وارد کنید:
virtualenv myenv
myenv نام محیط مجازی است که میتوانید آن را به دلخواه تغییر دهید.
با دستور زیر شما میتوانید یک محیط مجازی ایجاد کنید:
virtualenv -p /usr/bin/python2.7 myenv
فعالسازی محیط مجازی
برای فعالسازی محیط مجازی در ویندوز، دستور زیر را اجرا کنید:
.\myenv\Scripts\activate
در سیستمهای مک و لینوکس، از دستور زیر استفاده کنید:
source myenv/bin/activate
پس از فعالسازی محیط مجازی خود، میتوانید به نصب و مدیریت وابستگیهای پروژه بدون هیچگونه تداخل با وابستگیهای سایر محیطها یا نسخههای پایتون موجود در سیستم اصلی بپردازید.
غیرفعال کردن محیط مجازی
برای خروج و غیرفعالسازی محیط مجازی، تنها کافی است دستور زیر را در ترمینال خود اجرا کنید:
deactivate
این دستور محیط مجازی فعال شده را غیرفعال میکند و شما را به محیط عادی و اصلی سیستم بازمیگرداند.
مدیریت وابستگیهای محیط مجازی با requirements.txt
یکی از مزایای استفاده از Virtualenv، مدیریت وابستگیهای پروژه است. در این بخش، به نحوه استفاده از فایل requirements.txt برای مدیریت وابستگیها و نحوه ایجاد این فایل با استفاده از دستور pip میپردازیم.
اگر به دنبال اطلاعات بیشتری در مورد استفاده از pip هستید، میتوانید به مقاله pip چیست مراجعه کنید.
ایجاد فایل requirements.txt
برای ایجاد یک فایل requirements.txt که شامل تمام وابستگیهای پروژه باشد. ابتدا باید مطمئن شوید که در محیط مجازی فعلی خود هستید. دستور زیر را اجرا کنید:
pip freeze > requirements.txt
این دستور لیستی از تمام بستههای نصب شده در محیط مجازی شما را گرفته و آنها را به همراه نسخههای دقیق آن در فایل requirements.txt ذخیره میکند. این فایل میتواند به آسانی به دیگر توسعهدهندگان منتقل شود تا با اجرای دستور زیر، دقیقا همان محیط را روی سیستمهای خود نصب کنند:
pip install -r requirements.txt
استفاده از requirements.txt این اطمینان را به شما میدهد که محیطهای توسعه و تولید یکسان هستند و از این طریق، احتمال بروز خطاهای ناشی از وابستگیها در محیطهای مختلف کاهش مییابد.
نصب و راهاندازی Django در یک محیط مجازی
در این بخش، روش نصب و راهاندازی فریمورک Django در یک محیط مجازی را بررسی خواهیم کرد. استفاده از این روش به شما امکان میدهد تا پروژههای Django خود را در محیطی کاملاً مستقل توسعه دهید که این کار از بروز تداخل بین وابستگیهای مختلف جلوگیری میکند و به شما کمک میکند تا با اطمینان بیشتری پروژههای خود را پیش ببرید.
گام ۱: ایجاد محیط مجازی
محیط مجازی جدیدی را برای پروژه Django خود ایجاد کنید. دستور زیر را در مسیری که میخواهید پروژه خود را مستقر کنید، اجرا کنید:
virtualenv djangoproject
djangoproject نام محیط مجازی است که میتوانید آن را بر اساس نیاز خود تغییر دهید.
گام ۲:فعالسازی محیط مجازی
برای شروع استفاده از محیط مجازی ایجاد شده، آن را با دستور زیر فعال کنید:
source djangoproject/bin/activate
در ویندوز، دستور فعالسازی به شکل زیر است:
djangoproject\Scripts\activate
گام ۳: نصب Django
با محیط مجازی فعال، حالا میتوانید Django را نصب کنید. برای نصب آخرین نسخه Django، دستور زیر را اجرا کنید:
pip install django
گام 4: ایجاد پروژه Django
پس از نصب Django، میتوانید پروژه جدیدی را با استفاده از دستور django-admin ایجاد کنید:
django-admin startproject myproject
این دستور یک پروژه جدید Django با نام myproject در مسیر فعلی ایجاد میکند. شما میتوانید نام پروژه را به دلخواه خود تغییر دهید.
گام 5: اجرای پروژه
برای بررسی اینکه پروژه Django به درستی کار میکند، سرور توسعه محلی را با دستور زیر راهاندازی کنید:
python manage.py runserver
پس از اجرای این دستور، مرورگر خود را باز کنید و به آدرس http://127.0.0.1:8000 بروید تا صفحه Django را مشاهده کنید.
جمع بندی
در این مقاله، به معرفی و کاربرد Virtualenv در توسعه پروژههای پایتون پرداختیم و نشان دادیم چگونه این ابزار میتواند به ایجاد محیطهای مجازی جداگانه برای هر پروژه کمک کند. سپس، به بررسی مراحل نصب و راهاندازی فریمورک Django در یکی از این محیطهای مجازی پرداختیم. استفاده از Virtualenv امکان توسعه پروژههای Django را در یک محیط کاملاً مستقل فراهم میآورد که این کار به مدیریت بهتر وابستگیها و جلوگیری از تداخلات بین پروژههای مختلف کمک میکند. استفاده از این ابزار نه تنها به افزایش کارایی و امنیت در توسعه نرمافزار کمک میکند بلکه به توسعهدهندگان اجازه میدهد تا با اطمینان بیشتری به پیشبرد پروژههای خود بپردازند.