محیط مجازی در پایتون
فرض کنید شما یک وبسایت با زبان پایتون نوشتین و از دو تا کتابخونه numpy نسخه ۸ و pillow نسخه ۵ استفاده میکنید، در حالت عادی میشه انیطوری تشبیه کرد که هر وقت میخواین سایتتون رو اجرا کنید سایتتون کتابدار(شاید این نقش سیتم عامل باشه) رو صدا میزنه و میگه منو وصل کن به کتابخونه numpy و بعدش کارشو انجام میده. حالا فرض کنید شما برای انجام دادن مشق دانشگاه تون لازمه که نسخه ۱۰ numpy رو نصب کنید، حلا که میخوای سایتت ور اجرا کنی وقتی سایتت کتابدار رو صدا میزنه میگه نام پای رو برام بیار همه حرفای این نام پای جدید رو نمی فهمه در نتیجه به خطا بر میخوره.
راه حل چیه؟ شما باید محیط برنامه هاتون رو کپسوله کنید یعنی هر برنامه توی یک اتاق جدا با یک کتاب دار جدا باشه پس من یک اتاق جدید درست میکنم روی درش هم مینویسم سایت من و روش همون نامپای ۸ و پیلو ۵ رو نصب میکنم و سایتمو میندازم اون تو از این به بعد هر بار سایتم رو اجرا کنم اون کتاب دار خودشو داره و کتبادارش هم نامپای نسخه رو براش میاره و کارش راه میفته از طرف دیگه هم یک اتاق دیگه دارم به اسم مشق یادگیری ماشین که اونجا نام پای ۱۰ رو نصب کرده و هر وقت برنامهشو اجرا میکنم کتابدار اون اتاق برای برنامه نامپای ۱۰ رو میاره و دیگه این دو برنامه برای هم تداخلی ایجاد نمیکنن.
حالا چطوری میتونه اتاق های جدا داشته باشیم یا به عبارت دیگه برنامه هامون رو کپسوله کنیم؟
برای نصب راهنمای رسمی خودشون رو از این آدرس دنبال کنید
https://virtualenv.pypa.io/en/latest/index.html
حالا که نصب کردین برین اونجا که میخواین پروژه تون رو ایجاد کنید و یک دایرکتوری به اسم پروژتون ایجاد کنید بعد این دستور رو وارد کنید
virtualenv my_mashgh
حالا شما اونجا یک محیط کپسوله ایجاد کردین ولی هنوز داخلش نشدین برای وارد شدن به محیط کپسوله از این دستور استفاده کنید
my_mashgh\Scripts\activate
حالا باید اول دستورات تون این عبارت ظاهر شده باشه (venv) که یعنی دیگه وارد اتاق شدین :) و حالا میتونید هر نسخه از هر کتابخونه ای که دوست دارین رو نصب کنید بدون اینکه به کل سیستم اعمال بشه.
برای خارج شدن هم میتویند این دستور رو اجرا کنید.
my_mashgh\Scripts\deactivate.bat