ماژول مورد استفاده برای ایجاد و مدیریت محیطهای مجازی venv نام دارد. venv نسخه پایتونی را نصب میکند که دستور از آن اجرا شده (همانطور که توسط گزینه --version گزارش میشود). مثلاً، اجرای دستور با python3.12 نسخه ۳.۱۲ را نصب میکند.
برای ایجاد یک محیط مجازی، یک دایرکتوری که میخواهید آن را در آن قرار دهید انتخاب کنید و ماژول venv را به عنوان یک اسکریپت با مسیر دایرکتوری اجرا کنید:
python -m venv tutorial-env
این دایرکتوری tutorial-env را اگر وجود نداشته باشد ایجاد میکند و همچنین دایرکتوریهایی در داخل آن ایجاد میکند که حاوی یک کپی از مفسر پایتون و فایلهای پشتیبانی مختلف هستند.
یک مکان رایج دایرکتوری برای محیط مجازی .venv است. این نام دایرکتوری را معمولاً در shell شما پنهان نگه میدارد و در عین حال نامی دارد که توضیح میدهد چرا دایرکتوری وجود دارد. همچنین از تداخل با فایلهای تعریف متغیر محیطی .env که برخی ابزارها پشتیبانی میکنند جلوگیری میکند.
وقتی یک محیط مجازی ایجاد کردید، میتوانید آن را فعال کنید.
در Windows، اجرا کنید:
tutorial-env\Scripts\activate
در Unix یا MacOS، اجرا کنید:
source tutorial-env/bin/activate
(این اسکریپت برای shell bash نوشته شده. اگر از shellهای csh یا fish استفاده میکنید، اسکریپتهای جایگزین activate.csh و activate.fish وجود دارند که باید به جای آن استفاده کنید.)
فعال کردن محیط مجازی پرامپت shell شما را تغییر میدهد تا نشان دهد از کدام محیط مجازی استفاده میکنید و محیط را طوری تغییر میدهد که اجرای python آن نسخه و نصب خاص پایتون را به شما بدهد. به عنوان مثال:
$ source ~/envs/tutorial-env/bin/activate (tutorial-env) $ python Python 3.5.1 (default, May 6 2016, 10:59:36) ... >>> import sys >>> sys.path ['', '/usr/local/lib/python35.zip', ..., '~/envs/tutorial-env/lib/python3.5/site-packages'] >>>
توجه کنید که محیط مجازی فعال متغیر PYTHONPATH را به هیچ وجه تغییر نمیدهد. این ممکن است منجر به نتایج غیرمنتظره شود اگر مسیر شامل مراجع به کدی باشد که با نسخه پایتونی که محیط مجازی استفاده میکند ناسازگار است. بهترین تمرین این است که در bash unset PYTHONPATH یا معادل آن در shell مورد استفادهتان را اجرا کنید.
برای غیرفعال کردن محیط مجازی، تایپ کنید:
deactivate
در ترمینال.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://docs.python.org/3/tutorial