آشنایی کامل با محیط های مجازی پایتون

سه شنبه 6 اردیبهشت 1401

از میان تمام دلایلی که باعث شده تا پایتون امروزه مورد توجه بسیاری از توسعه دهندگان قرار گیرد می توان پکیج های شخص ثالث را در میان مهمترین دلایل قرار داد.

 آشنایی کامل با محیط های مجازی پایتون

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

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

آشنایی با محیط های مجازی پایتون

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

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

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

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

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

- شما در یک محیط پایتون کار می کنید که نمی توانید دایرکتوری و پوشه مربوط به site-packageها را تغییر دهید. این مسئله ممکن است به علت کار کردن شما در یک محیط بسیار کنترل شده رخ دهد که مثال آن میزبانی مدیریت شده است. البته ممکن است شما در حال کار کردن روی سروری باشید که انتخاب مفسر( یا پکیج های استفاده شده در آن) به علت نیازهایی که شما دارید نمی تواند تغییر کند.

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

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

اهمیت استفاده از محیط های مجازی پایتون

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

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

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

محیط های مجازی در زبان پایتون مدرن

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

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

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

python -m venv /path/to/directory

دقت داشته باشید که اگر سیستم شما پایتون 2 را به عنوان مفسر پیش فرض زبان برنامه نویسی پایتون تشخیص داده شود شما باید از پایتون 3 به جای پایتون استفاده کنید. در سیستم عامل ویندوز شما می توانید از py به جای پایتون استفاده کنید تا دسترسی مطمئن به نسخه پایتون نصب شده داشته باشید.

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

کپی مفسر زبان برنامه نویسی پایتون

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

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

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

-          در یونیکس یا MacOS شما باید از bash shell با منبع /path/to/venv/bin/activate استفاده کنید.

-          در یونیکس یا MacOS شما می توانید از csh shell با منبع /path/to/venv/bin/activate.csh استفاده کنید.

-          در یونیکس یا MacOS شما می توانید از fish shell با منبع /path/to/venv/bin/activate.fish استفاده کنید.

-          در سیستم عامل ویندوز و با استفاده از خط فرمان شما می توانید از منبع path\to\venv\Scripts\activate.bat استفاده کنید.

-          در ویندوز و با استفاده از PowerShell شما می توانید از منبع path\to\venv\Scripts\Activate.ps1 بهره مند شوید.

نکاتی مهم برای استفاده از محیط های مجازی در پایتون

توجه داشته باشید که محیط های مجازی پایتون که فعال شده اند فقط برای زمینه ای کار می کنند که برای آن فعال شده اند. به عنوان مثال اگر دو نمونه از PowerShell با نام های A و B را راه اندازی کنید و تنها ماشین مجازی موجود در نمونه A را فعال کنید آن محیط تنها روی A اعمال می شود و در جای دیگری نمی توانید از آن استفاده کنید.

بسیاری از IDEهای زبان برنامه نویسی پایتون به طور خودکار یک محیط مجازی را در صورتی که در فهرست پروژه فعلی یافت شود شناسایی و فعال می کنند. به عنوان مثال Microsoft Visual Studio Code می تواند این کار را زمانی که افزونه زبان برنامه نویسی پایتون فعال شده است انجام دهد. کافی است که شما یک خط فرمان یا ترمینال را در داخل ویژوال استودیو کد اجرا کنید با این کار محیط های مجازی پایتون انتخاب شده به صورت خودکار فعال می شوند.

پیکربندی و استفاده از محیط مجازی پایتون

زمانی که محیط های مجازی پایتون را فعال کردید می توانید از pip package manager برای اضافه کردن و تغییر پکیج های مورد نیاز خود استفاده کنید. شما می توانید از طریق زیرپوشه Scripts از محیط مجازی خود به PIP دسترسی پیدا کنید که البته این مسئله در ویندوز صادق است و شما در یونیکس باید از OSes استفاده کنید.

اگر در حال حاضر با این موضوع آشنا هستید که چگونه باید از PIP استفاده کنید باید بدانید که این مسئله دقیقا در محیط های مجازی پایتون نیز صادق است. تنها کاری که باید انجام دهید این است که اطمینان حاصل کنید از نمونه ای از PIP استفاده می کنید که پکیج ها را برای محیط مجازی در زمینه ای که فعال شده است استفاده می کند. اگر شما هم قصد دارید بررسی کنید که از نسخه مناسب PIP و محیط مجازی مناسب استفاده می کنید می توانید دستور pip –V را تایپ کنید و بررسی کنید مسیری که برای شما نمایش داده می شود به زیر پوشه ای از محیط مجازی شما اشاره دارد یا خیر؟

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

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

python -m pip install -U pip

این دستور تضمین می کند که فرایند ارتقا و بروزرسانی به شکلی انجام می شود که پایتون فایل های مهم شما را قفل نمی کند. فراموش نکنید که دستور  pip install -U pip ممکن است نتواند عملیات ارتقا و بروزرسانی را به شکل درستی انجام دهد.

برای استفاده از محیط مجازی که برای اجرای اسکریپت های پایتون ایجاد کرده اید کافی است که پایتون را از طریق خط فرمان در کانتکسی که آن را فعال کرده اید فراخوانی کنید. به عنوان مثال برای اجرای یک اسکریپت فقط کافی است که python myscript.py را اجرا کنید.

مدیریت پکیج ها در محیط مجازی پایتون

زمانی که محیط های مجازی پایتون را ایجاد می کنید پکیج های pip و setuptools روی سیستم نصب می شوند. شما باید هر پکیج دیگری که قصد استفاده از آن را دارید را نصب کنید. برای پروژه هایی که نیازمندی های پیچیده ای دارند باید در ریشه پروژه خود یک فایل requirements.txt که الزامات پروژه را فهرست می کند نگهداری کنید. به این ترتیب اگر نیاز به ایجاد محیط مجازی دارید می توانید تمام پکیج های مورد نیاز خود را با استفاده از دستور pip install -r requirements.txt دوباره نصب کنید.

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

غیر فعال کردن محیط های مجازی پایتون

زمانی که استفاده از محیط های مجازی پایتون را به اتمام رساندید تنها کاری که باید انجام دهید این است که session که از آن استفاده کرده اید را به اتمام برسانید. اگر قصد دارید در همان session به کار خود ادامه دهید اما در عوض با مفسر پیش فرض پایتون کار خود را ادامه دهید کافی است که عبارت deactivate را تایپ کنید. کاربران سیستم عامل ویندوز Command Prompt کافی است که deactivate.bat را از زیر پوشه Scripts اجرا کنند ولی کاربران یونیکس و همینطور کاربران ویندوز که از PowerShell استفاده می کنند می توانند به سادگی هرچه تمام deactivate را در هر پوشه ای اجرا کنند.

حذف کردن محیط مجازی

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

محیط های مجازی پایتون 2

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

محبوب ترین و پرکاربردترین پروژه ای که در این زمینه وجود دارد virtualenv است که به ایجاد ساختار دایرکتوری و پوشه و کپی کردن فایل های مورد نیاز در یک محیط مجازی کمک می کند. برای نصب کردن این ابزار کافی است که از دستور pip install virtualenv استفاده کنید. برای ایجاد یک محیط مجازی با استفاده از این ابزار و ایجاد دایرکتوری نیز کافی است که دستور virtualenv /path/to/directory را وارد کنید. فعال کردن و غیرفعال کردن محیط های مجازی پایتون 2 نیز به همان روشی عمل می کند که برای محیط های مجازی پایتون 3 انجام میشد.

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

استفاده از محیط های مجازی پایتون در Jupyter notebooks

اگر شما هم از Jupyter notebooks استفاده می کنید و در حال حاضر آن را روی سیستم خود نصب کرده اید کافی است که محیط مجازی مورد نیاز خود را ایجاد کرده و آن را فعال کنید. در ادامه شما باید از طریق دایرکتوری محیط مجازی که ایجاد کرده اید دستور pip install ipykernel را اجرا کنید تا اجزای مورد نیاز برای IPython را اضافه کنید. در گام آخر نیز شما باید ipython kernel install —user —name=<project_name> را اجرا کنید که در واقع در آن project_name همان نامی است که شما قصد دارید به پروژه خاص خود اختصاص دهید. از این طریق شما می توانید به سادگی هرچه تمام Jupyter را راه اندازی کنید و به هسته IPython که در محیط مجازی ایجاد کرده اید دسترسی پیدا کنید.

به روزرسانی محیط های مجازی پایتون

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

اگر مفسر زبان برنامه نویسی پایتون موجود را با استفاده از minor point upgrade به روزرسانی کرده باشید، به عنوان مثال این کار از نسخه 3.9.5 به نسخه 3.9.7 زبان برنامه نویسی پایتون صورت گرفته باشد، شما می توانید هر محیط مجازی مربوطه را به راحتی به اندازه کافی ارتقا دهید. برای انجام این کار نیز می توانید با استفاده از یک خط فرمان در پروژه خود دستور زیر را تایپ کنید:

python -m venv /path/to/venv –upgrade

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

اگر یک نسخه اصلی و جدید از زبان برنامه نویسی پایتون را نصب کرده اید( به عنوان مثال قبلا از پایتون 3.8 استفاده می کردید و در حال حاضر از نسخه 3.9 این زبان برنامه نویسی استفاده می کنید) باید یک محیط مجازی جدید ایجاد کنید که به طور خاص از نسخه اصلی جدید زبان برنامه نویسی پایتون استفاده می کند. بنابراین شما به هیچ وجه نباید سعی کنید که یک محیط مجازی موجود که قبلا ایجاد کرده اید را به نسخه اصلی بالاتر زبان برنامه نویسی پایتون ارتقا داده و به روزرسانی کنید. با رعایت کردن این نکات به سادگی می توانید به روزرسانی های مورد نیاز برای محیط های مجازی پایتون را انجام دهید. 

 

برنامه نویسان

نویسنده 3346 مقاله در برنامه نویسان
  • Python
  • 286 بازدید
  • 2 تشکر

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید