راهنمای فعال سازی virtual environment
اول ببینیم virtual environment چیست و چه استفادهای از آن میشود.
پیشنهاد نویسنده: اجرای پایتون با cmd در ویندوز
راهنمای فعال سازی virtual environment
مشکل فعال سازی virtual environment
فرض کنید توی یکی از محیطهای python چندین پروژه با ورژنهای مختلف نوشتید، حالا میخوایم توی پروژه جدید از آخرین ورژن استفاده کنیم،خب شروع میکنیم به آپدیت کردن python به آخرین نسخه. خب تا اینجای کار مسئلهای نیست اما اگر سراغ پروژههای قبلی بریم متوجه میشویم که دیگه به درستی کار نمیکنن چرا که هسته پایتون برای اونا هم آپدیت شده و دستورات در ورژن جدید تغییر کرده و دیگر کدای ورژن قبلی رو به درستی اجرا نمیشود.
حالا باید چکار کنیم؟؟؟!!! باید تا ابد با یک ورژن کار کنیم؟؟ یا همه کدهای پروژههای قبل رو باز نویسی کنیم؟؟
من که ترجیح میدم شغلم رو عوض کنم تا این کارها انجام بدم.
راه حل فعال سازی virtual environment
python برای این مشکل یه راه حل ساده دارد و آن راه حل virtual environment نام دارد. virtual environment یک محیط ایزوله برای هر پروژه ایجاد میکند که داخل آن تمام پکیجهایی که شما استفاده میکنید رو باید دونه دونه pip install کنید شما این قابلیت رو با پوشه venv توی فایلهای پروژهتون میبینید. هر پروژه venv مخصوص خودش رو داره. این موضوع یک حُسن دیگه هم داره، ما هیچ وقت و در هیچ پروژهای نیاز نداریم که تمام packageها و libraryهای موجود در اون زبان رو import کنیم این حتما باعث حجیم شدن پروژه میشود. پس چه بهتر که میتوانیم فقط اونایی که لازم داریم رو به dependenceهای پروژه اضافه کنیم.
روش استفاده
راه اول
برای استفاده باید اول virtual environment رو نصب کنیم: توی سرچ ویندوز تایپ کنید command prompt و run as administrator رو بزنید. این پنجره باز میشود:

توی خط فرمان تایپ کنیدpython -m pip install virtualenv بعد Enter رو بزنید تا وارد پایتون شوید. (به اینترنت وصل شوید و چند دقیقهای صبر کنید)

حالا میتونید command رو ببندید، از poweshell برای ادامه کار استفاده میکنیم. برای این کار کافیه توی سرچ ویندوز powershell رو تایپ کنید و به روی آیکنش کلیک کنید تا باز بشه. با استفاده از دستورcd\ وارد روت اصلی میشیم و با کمک دستور mkdir djangoیک پوشه به اسم django در روت اصلی ایجاد میکنیم و با دستور cd django وارد پوشه ایجاد شده میشیم تا پروژه را داخل اون پیاده سازی کنیم.

حالا از python درخواست میکنیم که با استفاده از virtualenv یک محیط مجازی رو در پوشه venv (نام قراردادی) ایجاد کنه برای این کار کافیه دستور python -m virtualenv venv رو تایپ کنیم و Enter رو بزنیم.

خب ما یک virtualenv ایجاد کردیم ولی هنوز فعال نیست و باید فعال بشه فقط کافیه تا دستور .\venv\Scripts\Activate رو بزنید تا فایل Activeate رو اجرا کنه.

همینطور که میبینید یک کلمه venv داخل پرانز به ابتدای خط فرمان اضافه شده که یعنی ما کارمون رو درست انجام دادیم. حا باکمک pip freeze میتونیدیک لیست از پکیجهای موجود که البته الان خالیه رو ببینید.
راه دوم
اگر از IDE مناسب استفاده کنید مثل برنامه pycharm تمام این مراحل رو به صورت خودکار انجام میده و فقط کافیه هنگام تعریف پروژه گزینه virtualenv رو انتخاب کنید.

اگر روشهای دیگری برای انجام این کار در اختیار دارید در بخش نظرات برای ما بنویسید. منتظر نظرات شما هستیم.



















اگر بعد از مدتی بخوایم venv رو حذف کنیم، فقط پاک کردن پوشه کافیه یا دستور خاصی لازمه؟
سلام ندا جان، بله، برای حذف virtual environment، پاک کردن پوشه venv کافیه و نیازی به دستور خاصی نیست.
من وقتی pip install virtualenv میزنم خطای permission denied میگیرم. کسی تجربه رفعش رو داره؟
سلام جابری عزیز، احتمالاً مشکل از دسترسیهای شماست. سعی کنید Command Prompt را با دسترسی Administrator اجرا کنید و دوباره امتحان کنید.
کسی تست کرده که روی macOS فعالسازی venv چطور انجام میشه؟
سلام رمضانی عزیز، بله، فعالسازی virtual environment روی macOS هم مشابه ویندوز است، با این تفاوت که مسیرها و دستورات کمی متفاوت هستند. می توانید با جستجوی “فعال سازی virtual environment در macOS” راهنمایی های لازم را پیدا کنید.
توی لینوکس هم همین دستورات جواب میده یا فرق داره؟
سلام فاطمه، دستورات فعالسازی virtual environment در لینوکس هم تقریباً مشابه همین هست، اما ممکن است نیاز به نصب virtualenv با استفاده از apt-get یا pip داشته باشید.
آیا برای هر پروژه لازمه venv جدا بسازیم یا میشه از یک venv مشترک استفاده کرد؟
بله، برای هر پروژه بهتر است یک venv جداگانه ایجاد کنید تا وابستگیها و نسخههای پکیجها از هم تفکیک شوند و تداخلی ایجاد نشود.