نحوه ایجاد محیط مجازی در پایتون

create virtual environment python
20 آبان 1403

ایجاد محیط مجازی یا Virtual Environment یکی از بهترین روش‌ها برای مدیریت پروژه‌های پایتونی است. به عبارت ساده، یک محیط مجازی به شما امکان می‌دهد تا وابستگی‌های پروژه‌ها را به صورت مجزا مدیریت کنید، بنابراین پروژه‌های مختلف تداخل کمتری با یکدیگر خواهند داشت. فرض کنید شما روی دو پروژه کار می‌کنید که هر کدام نیاز به نسخه‌های مختلف از یک کتابخانه دارند؛ در این صورت، استفاده از محیط مجازی راه‌حل مناسبی خواهد بود.

برای ایجاد یک محیط مجازی در پایتون، باید ابتدا اطمینان حاصل کنید که پایتون و بسته مورد نیاز برای ایجاد محیط مجازی، یعنی venv، نصب شده‌اند. بسته venv به صورت پیش‌فرض با نسخه‌های جدیدتر پایتون ارائه می‌شود. برای شروع، یک پوشه جدید بسازید و به آن دایرکتوری بروید. سپس دستور زیر را اجرا کنید:

python -m venv myenv

با اجرای این دستور، یک پوشه جدید به نام myenv به وجود می‌آید که شامل تمام کتابخانه‌های مورد نیاز برای اجرای پروژه خواهد بود.

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

myenv\Scripts\activate

و در سیستم‌های Unix یا MacOS، دستور زیر را استفاده کنید:

source myenv/bin/activate

پس از فعال‌سازی، نام محیط مجازی باید قبل از مسیر جاری شما در ترمینال نمایش داده شود. این به این معناست که اکنون هر کتابخانه‌ای که نصب کنید، فقط به این محیط مجازی اضافه خواهد شد.

برای مثال، اگر بخواهید کتابخانه requests را نصب کنید:

pip install requests

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

توضیح قدم به قدم کد:

python -m venv myenv → یک محیط مجازی ایجاد می‌کند به نام myenv.
myenv\Scripts\activate → در ویندوز، محیط مجازی را فعال می‌کند.
source myenv/bin/activate → در سیستم‌های یونیکس یا مک، محیط مجازی را فعال می‌کند.
pip install requests → کتابخانه requests را در محیط مجازی نصب می‌کند.
deactivate → محیط مجازی را غیرفعال می‌کند تا به محیط اصلی سیستم بازگردید.

سوالات متداول

؟

چرا باید از محیط مجازی استفاده کنم؟

؟

چگونه می‌توانم مطمئن شوم که محیط مجازی فعال شده است؟

؟

آیا می‌توانم چندین محیط مجازی ایجاد کنم؟