virtualenv چیست؟

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/04
  • تعداد بازدید: 284

دقیقاً محیط مجازی چیست؟

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

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

خوب ، یک محیط مجازی فقط یک دایرکتوری با سه جز مهم است:

  • یک site-package / پوشه که کتابخانه های دیگر یا به اصطلاح ثانویه در آن نصب شده است.
  • پیوندها به موارد اجرایی Python  و استفاده از نسخه اصلی که روی سیستم شما نصب شده است.
  • اسکریپت هایی که کد پایتون اجرا شده را تضمین می کنند از مفسر Python و ازsite-package  نصب شده در داخل محیط مجازی استفاده می کنند.

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

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

  • با استفاده از نسخه های مختلف بسته برای پروژه های مختلف ، مشکلات وابستگی را حل کنید. به عنوان مثال ، شما می توانید از Package A v2.7 برای Project X و Package A v1.3 برای Project Y استفاده کنید.
  • با ثبت تمام وابستگی های بسته در یک پرونده مورد نیاز ، پروژه خود را مستقل و قابل تولید کنید.
  • بسته هایی را بر روی میزبانی نصب کنید که بر روی آنها از مدیر استفاده نمی کنید.
  • با حذف نیاز به نصب بسته های گسترده در سطح سیستم که ممکن است فقط برای یک پروژه نیاز داشته باشید ، بسته های کلی / دایرکتوری خود را مرتب نگه دارید.

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

تصویر بالا را در نظر بگیرید که در سیستم عامل به صورت کلی پکیج numpy با نسخه 2.1 نصب شده است. اما شما در بعضی پروژه ها لازم می شود که از نسخه های مخصوصی از این پکیج استفاده کنید و مجبور به پاک کردن و نصب مجدد آن در فضای کلی سیستم می شوید. اما با راه حل ارائه شده توسط virtualenv می توانید در هر پروژه یک نسخه اصلی از پایتون را با پکیج های مخصوص به آن پروژه نصب کرده و کار را انجام دهید.که تحت این شرایط ساختار اصلی کار حفظ شده و دیگر نگران کلیات کار با پکیج ها و نسخه هایی که با هم تداخل دارند نخواهید بود