ویرگول
ورودثبت نام
Astronaut in the Ocean
Astronaut in the Ocean
خواندن ۲ دقیقه·۵ سال پیش

ایجاد یک Virtual Environment در ویندوز

به صورت پیش فرض وقتی شما یک پکیج پایتون رو با پکیج‌منیجر Pip (بخونید پیپ) نصب می‌کنید، این پکیج‌ها توی مسیر‌های پیش فرض نصب میشن

یعنی چی؟ یعنی وقتی شما یک ماژول رو توی پایتون import می‌کنید، پایتون شروع می‌کنه توی این مسیر‌ها دنبال اون ماژول می‌گرده و اگه اون رو نتونه پیدا کنه خطا بر میگردونه!

چرا من باید به Virtual Environment‌ها اصلا اهمیت بدم؟

جواب اینه بخاطر تمیزکاری. در حقیقت فرض کنید شما دارید روی چندین پروژه کار می‌کنید و هر کدوم از این پروژه‌ها نسخه‌ی مختلفی از یک ماژول رو نیاز دارند. مثلاً یک پروژه‌ی قدیمی جنگو دارید و همزمان یک پروژه‌ی جدید رو استارت زدید. یا مثلاً خیلی از مواقع شما فقط می‌خواید یک ماژول تست کنید،‌ دلیلی نداره این ماژول به صورت مستقیم کل سیستم رو درگیر کنه، بعضی مواقع هم ممکنه به دلایل امنیتی نخواید یک پکیج رو به صورت system-wide نصب کنید یا اصلا ممکنه حق دسترسی لازم رو نداشته باشید!

دقیقاً Virtual Environment‌ها چیکار می‌کنن؟

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




? طریقه نصب Virtual Environment

دستور زیر را در cmd وارد کنید:

pip install virtualenv

خُب، حالا فرض کنیم، یک دایرکتوری داریم به اسم my_Project و اونجا داریم روی یک پروژه کار می‌کنیم، داخل دایرکتوری مورد نظر میریم(چطوری؟) و به virtualenv می‌گیم که از این بعد تمام پکیج‌ها تو این مسیر نصب شن و دیگه کاری با جاهای دیگه نداشته باش:

cd my_project virtualenv venv

دستور virtualenv یک پارامتر به عنوان ورودی می‌خواد،‌ که در حقیقت یک دایرکتوری با اون اسم می‌سازه و تمام فایل‌های مورد‌نیاز برای اینکه بتونه کارهاشو انجام بده داخل اون میسازه. خیلی مرسومه که این اسم رو معمولا همه‌جا venv می‌ذاریم(الان باید یک پوشه با نام venv درون پوشه my_project ساخته شده باشد)

بعد از اینکه دستور virtualenv venv رو اجرا کردید،‌ یک کار دیگه باید بکنید و اون فعال سازی این virtual environment هست. برای اینکار کافیه دستور پایین رو بزنید:

venv\Scripts\activate

پس، برای هر پروژه ای که دارید کافیه داخل پروژه یکبار به virtualenv بگید کارهای لازمه رو انجام بده و هرباری که داخل دایرکتوری مورد نظر میرید بهش بگید،‌اون رو براتون فعال کنه!

اما چطور غیرفعالش کنم تا بتونم با پایتون system-wide ام کار کنم؟ به راحتی کافیه دستور پایین رو اجرا کنید:

deactivate

کلام آخر:

در نهایت،‌ هر وقت هر پروژه ای رو شروع می‌کنید یا اگر می‌خواهید یک ماژول رو تست کنید فراموش نکنید حتماً از virtualenv استفاده کنید.

متن اصلی:

https://virgool.io/Software/virtual-environtment-part1-ak29fabeelou

منابع:

https://python-guide-es.readthedocs.io/es/guide-es/dev/virtualenvs.html


pythonپایتونvenvvirtualenvironment
شاید از این پست‌ها خوشتان بیاید