آموزش کامل محیط مجازی در پایتون | ساخت، مدیریت و استفاده از venv

فهرست مطالب
محیط مجازی در پایتون یک فضای ایزوله و جداگانه برای نصب کتابخانه های پایتون و مدیریت وابستگیهای هر پروژه است. این محیط با جلوگیری از تداخل بین نسخههای مختلف کتابخانهها در پروژههای مختلف، توسعه نرمافزار را سازمانیافتهتر و بدون مشکل میکند. با استفاده از آموزش Virtual Environment در پایتون میتوانید برای هر پروژه نسخههای خاصی از کتابخانهها را نصب کنید. بدون اینکه نگران تأثیر آن روی پروژههای دیگر باشید. همچنین این کار از بروز مشکلات ناسازگاری نسخهها جلوگیری کرده و امکان همکاری تیمی را سادهتر میسازد.همچنین با آموزش جامع پایتون میتوانید به طور کامل نحوه کار با این زبان را یاد بگیرید.
به نقل از وب سایت realpython.com:
“محیطهای مجازی پایتون (venv) ابزاری ضروری برای توسعهدهندگان هستند که با ایجاد فضای ایزوله، مدیریت کتابخانهها و نسخههای مختلف پایتون را ساده میکنند. این محیطها از تداخل dependencies بین پروژهها جلوگیری کرده و موجب توسعه نرمافزار به صورت سازمانیافتهتر میشوند. در ادامه این آموزش بهصورت گامبهگام با نحوه ساخت محیط مجازی در پایتون، فعالسازی و استفاده از این محیطها آشنا خواهید شد.”
مشکل وابستگیهای نرمافزاری در پروژههای پایتونی
در توسعه نرمافزار با پایتون، یکی از بزرگترین چالشها مدیریت وابستگیها (dependencies) است. هر پروژه ممکن است به نسخههای خاصی از کتابخانهها نیاز داشته باشد و نصب همزمان نسخههای مختلف یک کتابخانه در سیستم ممکن نیست. این مسئله منجر به مشکلاتی موسوم به “جهنم وابستگیها” (Dependency Hell) میشود که در آن پروژههای مختلف با نیازمندیهای متضاد نمیتوانند در یک محیط کار کنند. به همین دلیل آشنایی با محیط مجازی در پایتون می تواند اینگونه مشکلات را از بین ببرد. در ادامه با نحوه استفاده از محیط مجازی در پایتون نیز آشنا خواهیم شد.
چگونه محیط مجازی به ما کمک میکند؟
محیط مجازی در پایتون این مشکل را با ایجاد فضای ایزوله برای هر پروژه حل میکند. هر محیط مجازی دارای پکیجها و وابستگیهای مخصوص به خود است که کاملاً از محیط اصلی پایتون و دیگر پروژهها جدا میباشد. این ویژگی به شما اجازه میدهد تا:
- نسخههای مختلف یک کتابخانه را برای پروژههای مختلف استفاده کنید
- از تداخل بین نیازمندیهای پروژهها جلوگیری کنید
- پروژهها را به راحتی بین سیستمهای مختلف منتقل کنید
- محیط توسعه تمیز و سازمانیافتهای داشته باشید
تفاوت venv، virtualenv و conda چیست؟
venv ماژول استاندارد پایتون (از نسخه 3.3 به بعد) است که عملکرد پایهای برای ایجاد محیطهای مجازی ارائه میدهد. virtualenv یک ابزار شخص ثالث با قابلیتهای پیشرفتهتر است که با نسخههای قدیمیتر پایتون هم کار میکند و انعطافپذیری بیشتری دارد. conda یک سیستم مدیریت بسته و محیط است که نه تنها برای پایتون، بلکه برای سایر زبانها هم کاربرد دارد و مخصوصاً در محاسبات علمی و دادهکاوی محبوب است. هر کدام از این ابزارها مزایای خاص خود را دارند و انتخاب بین آنها بستگی به نیازهای پروژه دارد. این ابزارها به ساخت محیط مجازی در پایتون کمک شایانی میکنند.
نحوه ساخت و استفاده از محیط مجازی در پایتون
در ادامه به صورت مرحله به مرحله نحوه ایجاد محیط مجازی در پایتون را بیان میکنیم.
به نقل از وب سایت realpython.com:
“در این مثال از ماژول venv پایتون برای ایجاد محیطهای مجازی استفاده میشود. این ماژول بخشی از کتابخانه استاندارد پایتون است و از نسخه ۳.۵ به بعد، روش رسمی توصیهشده برای ساخت محیطهای مجازی محسوب میشود.
نکته: ابزارهای دیگری مثل conda و virtualenv هم برای ساخت محیط مجازی در پایتون وجود دارند. این ابزارها نه تنها محیط مجازی ایجاد میکنند، بلکه امکانات بیشتری نیز ارائه میدهند. اما برای استفاده معمولی، venv گزینه بهتری است، زیرا از قبل همراه پایتون نصب میشود.
ایجاد محیط مجازی:
هر زمان روی پروژهای کار میکنید که به کتابخانههای خارجی (نصبشده با pip) نیاز دارد، بهتر است ابتدا یک محیط مجازی ایجاد کنید:
ویندوز:
powershell
Copy
PS> py -m venv venv\
این دستور به Python launcher اجازه میدهد تا نسخه مناسب پایتون را انتخاب کند. اگر میخواهید مستقیماً از مسیر اجرایی پایتون استفاده کنید (در صورت تنظیم نبودن متغیرهای محیطی)، میتوانید مسیر کامل را مشخص کنید:
powershell
Copy
PS> C:\Users\Name\AppData\Local\Programs\Python\Python312\python -m venv venv\
مسیر فوق مربوط به پایتون ۳.۱۲ است. برای یافتن مسیر دقیق در سیستم خود، از دستور where.exe python در PowerShell کمک بگیرید.
نکته:
- نیاز نیست بکاسلش (\) را در انتهای نام محیط مجازی قرار دهید، اما این کار یادآوری میکند که در حال ایجاد یک پوشه هستید.
- نام پیشفرض venv توصیه میشود، اما میتوانید نام دیگری انتخاب کنید.”
گام 1: نصب پایتون و بررسی نسخه آن
قبل از ایجاد محیط مجازی در پایتون مطمئن شوید پایتون روی سیستم شما نصب است. آخرین نسخه را از سایت python.org دانلود کنید. پس از نصب، در خط فرمان (ترمینال یا cmd) دستور python –version یا python3 –version را اجرا کنید تا نسخه نصبشده را بررسی نمایید. برای کار با محیطهای مجازی، نیاز به پایتون نسخه 3.3 یا جدیدتر دارید.
گام 2: ایجاد یک محیط مجازی جدید با venv
برای ساخت محیط مجازی در پایتون به پوشه پروژه خود رفته و در خط فرمان دستور python -m venv myenv را اجرا کنید (به جای myenv میتوانید نام دلخواه بگذارید). این دستور یک پوشه با نام محیط مجازی ایجاد میکند که حاوی فایلهای لازم است. ممکن است در ویندوز نیاز باشد از python3 به جای python استفاده کنید. این کار یک محیط کاملاً ایزوله برای نصب کتابخانههای پروژه به وجود میآورد. با انجام این مراحل میتوانید به راحتی راهاندازی و مدیریت venv در پایتون را انجام دهید.
گام 3: فعالسازی محیط مجازی در ویندوز، مک و لینوکس
برای فعالسازی محیط مجازی در ویندوز، مک و لینوکس، پس از ایجاد محیط، باید آن را فعال کنید:
نصب و ساخت محیط مجازی پایتون در ویندوز
در ویندوز، ابتدا مطمئن شوید پایتون نصب است (python –version). سپس در cmd یا PowerShell، با دستور python -m venv myenv یک محیط مجازی جدید بسازید. برای فعالسازی آن از myenv\Scripts\activate استفاده کنید.
نصب و ساخت محیط مجازی پایتون در لینوکس
در لینوکس ابتدا پایتون 3 و بسته venv را نصب کنید (sudo apt install python3-venv). سپس با python3 -m venv myenv محیط جدید ساخته و با source myenv/bin/activate آن را فعال نمایید.
نصب و ساخت محیط مجازی پایتون در مک
در مک که معمولاً پایتون 3 پیشنصب است، در ترمینال با python3 -m venv myenv یک محیط مجازی بسازید. برای فعالسازی از source myenv/bin/activate استفاده کنید.
گام 4: نصب پکیجها در محیط مجازی و مدیریت آنها
پس از ساخت محیط مجازی در پایتون و فعالسازی آن میتوانید با استفاده از pip پکیجهای مورد نیاز را نصب کنید (مثلاً: pip install numpy). برای مدیریت بهتر پکیجها، میتوانید لیست آنها را در فایل requirements.txt ذخیره کنید (pip freeze > requirements.txt) و در سیستم دیگر با pip install -r requirements.txt همه را یکجا نصب نمایید.
گام 5: غیرفعالسازی محیط مجازی و حذف آن
برای غیرفعال کردن محیط مجازی، کافیست در ترمینال دستور deactivate را وارد نمایید. برای حذف کامل محیط، کافیست پوشه مربوط به محیط مجازی (مثلاً myenv) را پاک کنید. در ویندوز از File Explorer و در مک و لینوکس با دستور rm -rf myenv این کار را انجام دهید.
مدیریت محیطهای مجازی با ابزارهای مختلف
همان طور که قبلا هم گفتیم محیطهای مجازی پایتون ابزارهای ضروری برای مدیریت وابستگیها و ایزوله کردن پروژهها هستند. ماژول venv سادهترین راه حل است، در مقابل ابزارهای پیشرفتهتری مانند virtualenv، pipenv و conda امکانات بیشتری ارائه میدهند. انتخاب بین آنها برای ایجاد محیط مجازی در پایتون به نیازهای پروژه و ترجیحات توسعهدهنده بستگی دارد. حال اگر به دنبال آموزش حرفه ای پایتون برای ورود به بازار کار هستید، دورههای آموزشی جامع دیتایاد را بررسی کنید! 🚀 مشاهده دورهها
Virtualenv
ابزار virtualenv یکی از محبوبترین گزینهها برای ایجاد محیط مجازی در پایتون است که حتی قبل از وجود ماژول venv در پایتون مورد استفاده قرار میگرفت. این ابزار با دستور pip install virtualenv نصب شده و با virtualenv myenv یک محیط جدید ایجاد میکند. مزیت اصلی virtualenv پشتیبانی از نسخههای قدیمیتر پایتون و انعطافپذیری بیشتر در تنظیمات است.
pipenv
pipenv ترکیبی از محیط مجازی و مدیریت پکیج است که مشکلات وابستگیها را به طور هوشمندانهتری از بین میبرد. این ابزار با pip install pipenv نصب میشود و با ایجاد خودکار محیط مجازی و فایل Pipfile، مدیریت پکیجها را سادهتر میکند. pipenv برای پروژههای پیچیده با وابستگیهای متعدد مناسب است.
conda
conda یک سیستم مدیریت پکیج و محیط همهکاره است که بیشتر در حوزه علم داده و محاسبات علمی استفاده میشود. برخلاف ابزارهای دیگر، conda فقط مخصوص پایتون نیست و میتواند پکیجهای مربوط به سایر زبانها را نیز مدیریت کند. با دستور conda create -n myenv میتوان یک محیط جدید ساخت. conda به همراه توزیع Anaconda نصب میشود و برای کارهای سنگین محاسباتی ایدهآل است.
به نقل از وب سایت realpython.com:
استفاده از محیطهای مجازی در پایتون یک ضرورت انکارناپذیر است، چرا که با ایجاد فضای ایزوله برای هر پروژه، از تداخل نسخههای مختلف کتابخانهها جلوگیری کرده و مدیریت وابستگیها را ممکن میسازد. این کار نه تنها از بروز “وابستگیها” (Dependency Hell) پیشگیری میکند، بلکه موجب توسعه چندین پروژه موازی با نیازمندیهای متناقض نیز میشود. در حقیقت محیطهای مجازی مانند یک ساندباکس عمل میکنند که آزمایش و توسعه امن و منظم را برای برنامهنویسان فراهم میکنند.
نکات و مشکلات رایج در استفاده از محیط مجازی
اگرچه استفاده از محیط مجازی در پایتون بسیار مفید است، اما ممکن است با چالشهایی هم همراه باشد. آشنایی با این مشکلات و راهحلهای آنها به شما کمک میکند تا از محیطهای مجازی به صورت مؤثرتری استفاده کنید. در ادامه برخی از رایجترین این مسائل و راهکارهای آنها را شرح میدهیم.
مشکل فعالسازی محیط مجازی در ویندوز (خطای اجرای اسکریپتها)
در ویندوز ممکن است هنگام ساخت محیط مجازی در پایتون و فعالسازی آن با خطای اجرای اسکریپتها مواجه شوید. معمولا این مشکل به دلیل محدودیتهای امنیتی ویندوز رخ میدهد. برای حل آن میتوانید با دستور Set-ExecutionPolicy RemoteSigned در PowerShell این محدودیت را بردارید. همچنین مطمئن شوید که از اسکریپتهای صحیح فعالسازی (Scripts/activate.ps1) استفاده میکنید.
نحوه انتقال محیط مجازی به سیستم دیگر
انتقال مستقیم محیط مجازی بین سیستمهای مختلف توصیه نمیشود. در عوض میتوانید با استفاده از pip freeze > requirements.txt لیست پکیجها را ذخیره کنید. سپس در سیستم جدید، پس از ایجاد محیط مجازی، با دستور pip install -r requirements.txt تمام پکیجها را نصب نمایید. این روش تضمین میکند که وابستگیها به درستی منتقل شوند.
بهروزرسانی و حذف پکیجها در محیط مجازی
برای بهروزرسانی پکیجها در محیط مجازی میتوانید از pip install –upgrade نام_پکیج استفاده کنید. برای حذف یک پکیج نیز دستور pip uninstall نام_پکیج کاربرد دارد. همیشه پس از تغییرات در پکیجها، فایل requirements.txt را با دستور pip freeze > requirements.txt بهروز کنید تا تغییرات ذخیره شوند. این کار به مدیریت بهتر وابستگیها کمک میکند.
سوالات متداول
1- تفاوت بین venv و virtualenv چیست؟
venv ماژول استاندارد پایتون (از نسخه ۳.۳ به بعد) است و امکانات پایه ارائه میدهد. در مقابل virtualenv ابزار شخص ثالث با قابلیتهای پیشرفتهتر است و با نسخههای قدیمی پایتون هم کار میکند.
2- چگونه میتوان چندین محیط مجازی را همزمان مدیریت کرد؟
با استفاده از ابزارهایی مثل pipenv یا conda میتوانید محیطها را مدیریت کنید. همچنین میتوانید برای هر پروژه پوشه مجزا ایجاد کرده و محیطها را جداگانه فعال/غیرفعال نمایید.
3- بهترین روش برای اشتراکگذاری پروژه با محیط مجازی چیست؟
به جای اشتراک خود محیط، فایل requirements.txt را با دستور pip freeze > requirements.txt ایجاد کنید. دیگران با pip install -r requirements.txt میتوانند وابستگیها را نصب کنند.
4- چرا گاهی pip در محیط مجازی کار نمیکند؟
ممکن است محیط به درستی فعال نشده یا مسیر pip اشتباه باشد. ابتدا با which pip (لینوکس/مک) یا where pip (ویندوز) از فعال بودن محیط مطمئن شوید.