محیط مجازی در پایتون چیست؟

در این آموزش با Virtual Environment در پایتون آشنا می‌شویم و یاد می‌گیریم چگونه با استفاده از venv برای هر پروژه یک محیط جداگانه ایجاد کنیم.

محیط مجازی در پایتون چیست؟

محیط مجازی یا Virtual Environment یک محیط مستقل برای اجرای یک پروژه پایتون است.

در این محیط می‌توانیم کتابخانه‌ها و وابستگی‌های مورد نیاز یک پروژه را جدا از سایر پروژه‌ها نصب و مدیریت کنیم.

این موضوع زمانی اهمیت بیشتری پیدا می‌کند که چند پروژه مختلف داشته باشیم و هر پروژه به نسخه یا مجموعه متفاوتی از کتابخانه‌ها نیاز داشته باشد.

چرا از Virtual Environment استفاده کنیم؟

فرض کنید برای یک پروژه به نسخه خاصی از یک کتابخانه نیاز داریم، اما پروژه دیگری به نسخه متفاوتی از همان کتابخانه احتیاج دارد.

اگر همه کتابخانه‌ها را مستقیماً در محیط اصلی Python نصب کنیم، مدیریت وابستگی‌های پروژه‌ها می‌تواند دشوار شود.

با Virtual Environment می‌توانیم برای هر پروژه محیط جداگانه‌ای داشته باشیم.

  • جلوگیری از تداخل کتابخانه‌ها
  • مدیریت بهتر وابستگی‌های هر پروژه
  • امکان استفاده از نسخه‌های متفاوت کتابخانه‌ها
  • ساخت محیط تمیز برای پروژه
  • مناسب برای کار با VS Code و پروژه‌های واقعی

venv در پایتون چیست؟

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

بنابراین برای ساخت یک محیط مجازی ساده، معمولاً نیازی به نصب کتابخانه جداگانه نداریم.

ساخت Virtual Environment در ویندوز

ابتدا وارد پوشه پروژه خود شوید. سپس ترمینال VS Code یا Command Prompt را باز کنید.

برای ساخت محیط مجازی دستور زیر را اجرا کنید:

python -m venv .venv

در این دستور:

  • python مفسر پایتون را اجرا می‌کند.
  • -m venv ماژول داخلی venv را اجرا می‌کند.
  • .venv نام پوشه محیط مجازی است.

بعد از اجرای دستور، پوشه‌ای با نام .venv در پروژه ایجاد می‌شود.

فعال کردن محیط مجازی در Command Prompt

اگر از Command Prompt ویندوز استفاده می‌کنید، دستور زیر را اجرا کنید:

.venv\Scripts\activate

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

(.venv) C:\MyProject>

فعال کردن محیط مجازی در PowerShell

در PowerShell می‌توانید از دستور زیر استفاده کنید:

.venv\Scripts\Activate.ps1

در بعضی سیستم‌های ویندوز ممکن است PowerShell به دلیل تنظیمات Execution Policy اجازه اجرای اسکریپت فعال‌سازی را ندهد.

در چنین شرایطی می‌توان از Command Prompt استفاده کرد یا تنظیمات PowerShell را متناسب با محیط توسعه بررسی کرد.

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

بعد از فعال‌سازی، می‌توانیم مسیر Python را بررسی کنیم.

در ویندوز دستور زیر را اجرا کنید:

where python

اگر محیط مجازی فعال باشد، معمولاً مسیر Python موجود در پوشه .venv نیز نمایش داده می‌شود.

همچنین می‌توانید نسخه Python را بررسی کنید:

python --version

نصب کتابخانه داخل Virtual Environment

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

برای مثال:

pip install requests

در این حالت کتابخانه در محیط مجازی پروژه نصب می‌شود و با سایر پروژه‌ها تداخل کمتری خواهد داشت.

یک مثال ساده با requests

ابتدا محیط مجازی را ایجاد و فعال کنید:

python -m venv .venv

.venv\Scripts\activate

سپس کتابخانه requests را نصب کنید:

pip install requests

حالا می‌توانیم یک فایل به نام main.py بسازیم:

import requests

response = requests.get("https://example.com")

print(response.status_code)

این پروژه اکنون کتابخانه مورد نیاز خود را در محیط مجازی خودش دارد.

استفاده از Virtual Environment در VS Code

VS Code می‌تواند محیط مجازی پروژه را شناسایی کند.

برای انتخاب Python Interpreter می‌توانید از Command Palette استفاده کنید:

Ctrl + Shift + P

سپس عبارت زیر را جستجو کنید:

Python: Select Interpreter

در فهرست نمایش داده شده، Python مربوط به پوشه .venv پروژه را انتخاب کنید.

فایل requirements.txt چیست؟

فایل requirements.txt معمولاً برای ثبت کتابخانه‌ها و نسخه‌های مورد نیاز یک پروژه استفاده می‌شود.

برای ایجاد این فایل می‌توانیم از دستور زیر استفاده کنیم:

pip freeze > requirements.txt

سپس شخص دیگری می‌تواند وابستگی‌های پروژه را با دستور زیر نصب کند:

pip install -r requirements.txt

خروج از Virtual Environment

برای خارج شدن از محیط مجازی کافی است دستور زیر را اجرا کنید:

deactivate

بعد از اجرای این دستور، محیط مجازی غیرفعال می‌شود.

حذف Virtual Environment

محیط مجازی در واقع یک پوشه در پروژه است. بنابراین برای حذف آن می‌توانید پوشه .venv را حذف کنید.

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

آیا باید پوشه .venv را در Git قرار دهیم؟

معمولاً بهتر است پوشه .venv را مستقیماً در مخزن Git قرار ندهیم.

به جای آن می‌توان نام پوشه را در فایل .gitignore قرار داد:

.venv/

سپس وابستگی‌های پروژه را در requirements.txt نگهداری کرد.

تفاوت Python اصلی و Virtual Environment

Python اصلی Virtual Environment
محیط عمومی سیستم محیط جداگانه برای پروژه
کتابخانه‌ها ممکن است بین پروژه‌ها مشترک باشند وابستگی‌های پروژه جدا نگهداری می‌شوند
مدیریت چند پروژه سخت‌تر می‌شود مدیریت پروژه‌ها ساده‌تر می‌شود

خطاهای رایج Virtual Environment

خطای فعال نشدن PowerShell

اگر PowerShell اجازه اجرای Activate.ps1 را ندهد، مشکل معمولاً مربوط به Execution Policy است.

در چنین شرایطی می‌توانید از Command Prompt استفاده کنید یا تنظیمات اجرای اسکریپت PowerShell را بررسی کنید.

دستور python شناخته نمی‌شود

اگر ویندوز دستور python را پیدا نمی‌کند، ابتدا نصب بودن Python و تنظیم PATH را بررسی کنید.

برای بررسی نسخه Python:

python --version

محیط مجازی ایجاد نمی‌شود

ابتدا بررسی کنید Python به درستی نصب شده باشد. سپس دستور زیر را امتحان کنید:

python -m venv .venv

روند پیشنهادی برای یک پروژه Python

یک روند ساده برای شروع پروژه می‌تواند به این شکل باشد:

mkdir my-project

cd my-project

python -m venv .venv

سپس محیط مجازی را فعال کنید:

.venv\Scripts\activate

کتابخانه‌های مورد نیاز را نصب کنید:

pip install requests

و در پایان وابستگی‌ها را ذخیره کنید:

pip freeze > requirements.txt

تمرین عملی

برای تمرین، یک پروژه جدید به نام weather-project ایجاد کنید.

  1. یک Virtual Environment بسازید.
  2. آن را فعال کنید.
  3. کتابخانه requests را نصب کنید.
  4. یک فایل main.py ایجاد کنید.
  5. نسخه requests را بررسی کنید.
  6. فایل requirements.txt ایجاد کنید.
  7. در پایان محیط مجازی را غیرفعال کنید.

جمع‌بندی

Virtual Environment یکی از ابزارهای مهم برای مدیریت پروژه‌های پایتون است.

  • venv برای ساخت محیط مجازی استفاده می‌شود.
  • هر پروژه می‌تواند محیط مجازی مستقل خودش را داشته باشد.
  • کتابخانه‌ها را می‌توان داخل محیط مجازی نصب کرد.
  • requirements.txt برای ثبت وابستگی‌های پروژه کاربرد دارد.
  • پوشه .venv معمولاً نباید وارد Git شود.

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

آیا Virtual Environment برای پایتون ضروری است؟

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

آیا venv را باید جداگانه نصب کنیم؟

venv به صورت ماژول استاندارد پایتون ارائه می‌شود و در نصب‌های معمول Python در دسترس است.

نام محیط مجازی حتماً باید .venv باشد؟

خیر. می‌توانید نام دیگری انتخاب کنید؛ .venv فقط یک نام رایج برای محیط مجازی پروژه است.

آیا Virtual Environment باعث نصب دوباره Python می‌شود؟

Virtual Environment یک محیط جداگانه برای پروژه ایجاد می‌کند و هدف اصلی آن جداسازی وابستگی‌ها و پکیج‌های پروژه است.

مطالب مرتبط