ایجاد ساختار پروژه و environment

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1402/11/23
  • تعداد بازدید: 93

پیوست های این درس:


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

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

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

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

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

 قرار گیری در پوشه پروژه

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

نکته مهم:اما این نکته را در نظر داشته باشید که در ویندوز نمی توانید با استفاده از Powershell عملیات هایی که در اینجا بررسی می شوند را انجام دهید و آن هم به دلیل تفاوت آدرس دهی در powershell است. پس بهتر است که با استفاده از cmd عملیات ها را انجام دهید.

باز کردن ترمینال /bash 

برای اینکه در پوشه مورد نظر بتوانید خط فرمان را باز کنید بستگی به سیستم عامل خواهد داشت که چگونه انجام شود. به عنوان مثال در سیستم عامل لینوکس کافیست که در فضای پوشه کلیک راست کرده  و open terminal نمایید. همچنین می توانید در محیط ویندوز با استفاده cmd از آدرس دهی به پوشه مد نظر استفاده کنید. توجه داشته باشید که استفاده از یک ویرایشگر متن پیشرفته مثل vscode می تواند این روند را راحت تر نماید.

ایجاد محیط مجازی

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

# python -m venv <name of folder>

# windows
python -m venv venv

#linux / mac
python3 -m venv venv

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

Windows directories

venv
├───Include
├───Lib
│   └───site-packages
├───Scripts
│   ├── activate
│   ├── deactivate
│   ├── pip
│   ├── python
│
└── pyvenv.cfg


linux/mac directories

venv
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── easy_install
│   ├── easy_install-3.5
│   ├── pip
│   ├── pip3
│   ├── pip3.5
│   ├── python -> python3.5
│   ├── python3 -> python3.5
│   └── python3.5 -> /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
├── include
├── lib
│   └── python3.5
│       └── site-packages
└── pyvenv.cfg

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

توجه داشته باشید که پکیج هایی که در این محیط نصب می کنید همگی در پوشه site-packages ذخیره می شوند و در صورتی که نیاز به ایجاد تغییر در پکیج ها داشتید می توانید به این پوشه مراجعه نمایید.

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

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

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

# windows
venv\Scripts\activate

# linux/mac
source venv/bin/activate

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

# windows 
(venv) c:\>Documents>icc_aria>

# linux/mac
(venv) $/home/Documents/icc_aria>

نصب ماژول های مد نظر

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

pip install fastapi==0.109.2

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

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

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

# windows / linux / mac
deactivate

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

 

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است می توانید اولین نفر باشید