محیط مجازی دقیقاً چیست؟
محیط مجازی (Virtualenv) ابزاری قدرتمند در پایتون برای مدیریت وابستگیها و ایزولهسازی پروژهها است. این ابزار به شما اجازه میدهد تا کتابخانهها و بستههای مورد نیاز هر پروژه را به صورت مستقل و جداگانه در پوشه مخصوص همان پروژه نصب و مدیریت کنید، بدون آنکه با کتابخانههای نصبشده در سطح سیستم تداخل داشته باشند.
یک محیط مجازی پایتون چگونه ساخته شده است؟
در واقع، محیط مجازی چیزی بیش از یک پوشه نیست که شامل سه بخش اصلی است:
- پوشه site-packages: جایی که کتابخانهها و بستههای نصبشده مخصوص آن محیط نگهداری میشوند.
- ارتباط با فایلهای اجرایی پایتون: محیط مجازی لینکهایی به مفسر پایتون نصب شده در سیستم اصلی ایجاد میکند، بنابراین امکان استفاده از نسخه مشخصی از پایتون فراهم میشود.
- اسکریپتهای اجرایی: این اسکریپتها تضمین میکنند که هر کدی که اجرا میشود، از مفسر پایتون و بستههای نصب شده در همان محیط مجازی استفاده کند.
چرا باید از محیطهای مجازی استفاده کنیم؟
محیطهای مجازی راهحلی ساده و مؤثر برای مشکلات رایجی هستند که هنگام توسعه پروژههای پایتون با آن مواجه میشویم. این راهحل به شما امکان میدهد:
- مدیریت نسخههای مختلف بستهها: مثلاً میتوانید در یک پروژه از نسخه ۲.۷ یک بسته و در پروژهای دیگر از نسخه ۱.۳ همان بسته استفاده کنید، بدون اینکه به هم تداخل داشته باشند.
- ایجاد پروژههای مستقل و قابل تکرار: با ثبت دقیق وابستگیها در فایلهایی مانند
requirements.txt
، میتوانید پروژه را روی هر سیستمی با همان تنظیمات اجرا کنید. - نصب بستهها بدون نیاز به دسترسی مدیر سیستم: این موضوع مخصوصاً در محیطهای اشتراکی و سرورهای میزبانی اهمیت دارد.
- حفظ تمیزی و نظم در نصب بستهها: بدون نصب گسترده بستهها در سطح سیستم، که ممکن است فقط برای یک پروژه خاص نیاز باشند.
بنابراین، وقتی پروژههای بزرگتر میشوند یا چند توسعهدهنده روی یک پروژه کار میکنند، محیطهای مجازی اهمیت و ضرورت بیشتری پیدا میکنند.
در تصویر بالا، مشاهده میکنید که در سطح سیستم، بسته numpy
با نسخه ۲.۱ نصب شده است. اما ممکن است برخی پروژهها به نسخههای دیگری از این بسته نیاز داشته باشند. بدون محیط مجازی، مجبور خواهید بود نسخه سیستم را تغییر دهید که این کار میتواند باعث تداخل و مشکلات شود. اما با استفاده از محیط مجازی، میتوانید برای هر پروژه نسخه خاصی از پایتون و بستهها را به صورت جداگانه نصب و مدیریت کنید، به طوری که ساختار کلی سیستم حفظ شده و نگرانی بابت تداخل نسخهها نداشته باشید.