آموزش جامع پایتون از صفر تا تخصص/جلسه دهم:محیط مجازی
آموزش پایتون

آموزش جامع پایتون از صفر تا تخصص/جلسه دهم:محیط مجازی

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

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

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

یک محیط مجازی پایتون:

  • به عنوان قابل حذف (Disposable) در نظر گرفته می‌شود.
  • برای نگهداری از یک مفسر پایتون خاص و کتابخانه‌ها و فایل‌های باینری مورد نیاز برای پشتیبانی از یک پروژه استفاده می‌شود.
  • در یک دایرکتوری نگهداری می‌شود که معمولاً به‌صورت پیش‌فرض با نام venv یا .venv در دایرکتوری پروژه قرار دارد.
  • قابل جابجایی یا کپی شدن در نظر گرفته نمی‌شود.

زمانی که شما نرم‌افزار پایتون را روی رایانه خود نصب می‌کنید، از هرجای فایل‌سیستم قابل استفاده است. این نوع نصب به صورت سراسری (سیستم‌واید) انجام می‌شود.هنگام توسعه یک برنامه در پایتون، ممکن است یک یا چند کتابخانه نیاز به نصب داشته باشند با استفاده از ابزار pip (مثلاً: pip3 install somelib). علاوه بر این، ممکن است یک برنامه (مثلاً App1) به نسخه خاصی از یک کتابخانه نیاز داشته باشد – مثلاً somelib 1.0. در همین زمان، برنامه دیگری در پایتون (برای مثال App2) ممکن است به نسخه جدیدتری از همان کتابخانه نیاز داشته باشد، مثلاً somelib 2.0. بنابراین، با نصب نسخه جدید، ممکن است عملکرد App1 دچار مشکل شود به دلیل تداخل بین دو نسخه متفاوت از یک کتابخانه.

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

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

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
C:\Users\Acer>md\pythonapp
C:\Users\Acer>cd\pythonapp
C:\pythonapp>python -m venv myvenv
C:\Users\Acer>md\pythonapp C:\Users\Acer>cd\pythonapp C:\pythonapp>python -m venv myvenv
C:\Users\Acer>md\pythonapp
C:\Users\Acer>cd\pythonapp
C:\pythonapp>python -m venv myvenv

در اینجا، myvenv پوشه‌ای است که یک محیط مجازی جدید پایتون در آن ایجاد خواهد شد و ساختار دایرکتوری به‌صورت زیر نمایش داده می‌شود:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Directory of C:\pythonapp\myvenv
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 <DIR> Include
22-02-2023 09:53 <DIR> Lib
22-02-2023 09:53 77 pyvenv.cfg
22-02-2023 09:53 <DIR> Scripts
Directory of C:\pythonapp\myvenv 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 <DIR> Include 22-02-2023 09:53 <DIR> Lib 22-02-2023 09:53 77 pyvenv.cfg 22-02-2023 09:53 <DIR> Scripts
Directory of C:\pythonapp\myvenv
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 <DIR> Include
22-02-2023 09:53 <DIR> Lib
22-02-2023 09:53 77 pyvenv.cfg
22-02-2023 09:53 <DIR> Scripts

ابزارهای فعال‌سازی و غیرفعال‌سازی محیط مجازی، همچنین نسخه محلی مفسر پایتون، در پوشه‌ی Scripts قرار خواهند گرفت.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Directory of C:\pythonapp\myvenv\scripts
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 2,063 activate
22-02-2023 09:53 992 activate.bat
22-02-2023 09:53 19,611 Activate.ps1
22-02-2023 09:53 393 deactivate.bat
22-02-2023 09:53 106,349 pip.exe
22-02-2023 09:53 106,349 pip3.10.exe
22-02-2023 09:53 106,349 pip3.exe
22-02-2023 09:53 242,408 python.exe
22-02-2023 09:53 232,688 pythonw.exe
Directory of C:\pythonapp\myvenv\scripts 22-02-2023 09:53 <DIR> . 22-02-2023 09:53 <DIR> .. 22-02-2023 09:53 2,063 activate 22-02-2023 09:53 992 activate.bat 22-02-2023 09:53 19,611 Activate.ps1 22-02-2023 09:53 393 deactivate.bat 22-02-2023 09:53 106,349 pip.exe 22-02-2023 09:53 106,349 pip3.10.exe 22-02-2023 09:53 106,349 pip3.exe 22-02-2023 09:53 242,408 python.exe 22-02-2023 09:53 232,688 pythonw.exe
Directory of C:\pythonapp\myvenv\scripts
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 2,063 activate
22-02-2023 09:53 992 activate.bat
22-02-2023 09:53 19,611 Activate.ps1
22-02-2023 09:53 393 deactivate.bat
22-02-2023 09:53 106,349 pip.exe
22-02-2023 09:53 106,349 pip3.10.exe
22-02-2023 09:53 106,349 pip3.exe
22-02-2023 09:53 242,408 python.exe
22-02-2023 09:53 232,688 pythonw.exe

فعال‌سازی محیط مجازی

برای فعال‌سازی این محیط مجازی جدید، فایل activate.bat را در پوشه‌ی Scripts اجرا کنید.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
C:\pythonapp>myvenv\scripts\activate
(myvenv) C:\pythonapp>
C:\pythonapp>myvenv\scripts\activate (myvenv) C:\pythonapp>
C:\pythonapp>myvenv\scripts\activate
(myvenv) C:\pythonapp>

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

بررسی اینکه آیا پایتون در محیط مجازی اجرا می‌شود؟

برای اطمینان از اینکه جلسه‌ی فعلی پایتون در یک محیط مجازی در حال اجراست، می‌توانید مسیرهای ماژول‌ها را با استفاده از sys.path بررسی کنید.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
(myvenv) C:\pythonapp>python
Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs',
'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv',
'C:\\pythonapp\\myvenv\\lib\\site-packages']
>>>
(myvenv) C:\pythonapp>python Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.path ['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs', 'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv', 'C:\\pythonapp\\myvenv\\lib\\site-packages'] >>>
(myvenv) C:\pythonapp>python
Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs',
'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv',
'C:\\pythonapp\\myvenv\\lib\\site-packages']
>>>

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

غیرفعال‌سازی محیط مجازی

برای غیرفعال کردن این محیط، دستور deactivate.bat را اجرا کنید.

PHP از دستورات echo و print برای نمایش خروجی در مرورگر یا کنسول PHP استفاده می‌کند. هر دو ساختارهای زبان...
شناسه‌ها در ++C نام‌های منحصربه‌فردی هستند که برای شناسایی متغیرها، توابع، کلاس‌ها، آرایه‌ها و سایر آیتم‌های تعریف‌شده توسط کاربر در...
++C
کلمات کلیدی در C++ کلمات رزرو شده‌ای هستند که برای کامپایلر معنا و مفهوم خاصی دارند. این کلمات نمی‌توانند برای...
++C
ثابت‌ها به مقادیر ثابتی اشاره دارند که برنامه نباید آن‌ها را تغییر دهد و به آن‌ها لیترال (Literal) گفته می‌شود. ثابت‌ها می‌توانند...
C++ Programming Language
توکن‌های C++ کوچک‌ترین واحدهای مستقل در یک برنامه هستند که توسط کامپایلر شناسایی و پردازش می‌شوند. این توکن‌ها با هم...
C++ Programming Language
حذف فضای نام (Namespace) شما می‌توانید به‌صورت صریح از پیشوند std:: برای اشیاء و توابع کتابخانه استاندارد استفاده کنید، به‌جای اینکه از...
C++ Programming Language
1

پشتیبانی واتساپ هوش فعال