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

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

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

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

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

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

حالا قصد داریم به طور کاملا عملی نحوه استفاده از venv را به شما آموزش دهیم.

ابتدا فرض کنید که یک پوشه برای پروژه خود ایجاد کرده ایم. در مثال ما نام پوشه KaraKit است. همچنین نام فایل پایتون ما main.py است.

venv

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

cmd

و بعد دکمه Enter را بزنید.

cmd

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

venv

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

py -m venv venv

venv

در این دستور عبارت venv دوم نام پوشه فضای مجازی شماست و می تواند هر نام دیگری داشته باشد. اگر اکنون به پوشه نگاه کنید می بینید که یک پوشه دیگر به نام venv داخل آن اضافه شده است.

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

venv\scripts\activate

اگر همه چیز به خوبی پیش برود باید عبارت (venv) مشابه این شکل به ابتدای خط فرمان اضافه شود:

venv

حالا کتابخانه ها و بسته های مورد نیاز را با استفاده از pip نصب کنید. به طور مثال در مثال ما کتابخانه ثالث pyttsx3

مورد نیاز است. بنابراین دستور زیر را وارد می کنیم:

pip install pyttsx3

کتابخانه باید مطابق شکل نصب شود:

venv

وقتی همه کتابخانه ها و بسته های لازم را نصب کردید برنامه را با این دستور اجرا کنید و ببینید که به درستی اجرا می شود یا خیر:

py main.py

می بینید که برنامه ما با موفقیت اجرا شده است:

وقتی مطمئن شدید که برنامه درست اجرا می شود می توانید با استفاده از دستور freeze یک فهرست از بسته ها و کتابخانه های نصب شده به همراه نسخه آنها ایجاد کنید. برای این کار دستور زیر را وارد کنید:

Pip freeze > requirements.txt

venv

با اجرای این دستور خواهید دید که یک فایل متنی به نام requirements به فولدر اضافه شده است:

requirements

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

requirements

حالا می توانید فایل پایتون و فایل requirements را  به راحتی zip کنید و برای شخص دیگری ارسال نمایید. اما یادتان باشد که پوشه venv را در فایل فشرده قرار ندهید.

اما کسی که پروژه را به طور فشرده تحویل می گیرد و از حالت فشرده خارج می کند باید چکار کند که بسته های مورد نظر شما نصب شوند؟

فرض کنید که ما به عنوان مشتری این دو فایل را دریافت کرده ایم. ابتدا باید مطابق ابتدای همین آموزش یک محیط مجازی ایجاد کنیم و آن را در محیط خط فرمان فعال نماییم.

حالا اگر پیش از نصب بسته های لازم سعی کنیم برنامه را اجرا کنیم با خطا مواجه خواهیم شد:

venv

سپس با این دستور همه بسته های لازم را نصب می کنیم:

pip install -r requirements.txt

حالا اگر برنامه را در محیط فرمان اجرا کنیم بدون مشکل کار خواهد کرد.