فرزان طینتی
فرزان طینتی
خواندن ۲ دقیقه·۶ سال پیش

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

به چه دردی میخوره؟

برای اینکه پکیج‌هایی که با pip نصب میکنیم بشکلی از سیستم عامل ایزوله بمونه و Global توی سیستم عامل نصب نشه تا بعدا کلی دردسر درست نشه، توی پایتون از Virtual Enviroment میشه استفاده کرد. یعنی هر پروژه میتونه یک محیط برای نصب پکیج‌هاش داشته باشه تا از نظر نسخه با هم تداخل نداشته باشن.

مثال

فرض کنین دو تا پروژه A و B داریم که هر دو از جانگو استفاده میکنن. A رو چند سال پیش نوشتیم و B رو اخیرا شروع کردیم. A با جانگو نسخه ۱.۵ نوشته شده و B با نسخه ۱.۱۱ ساخته شده. فرزان از Virtual Enviroment استفاده میکنه تا این دو پروژه با هم تداخل نکنن و یکجا بتونن کنار هم زندگی کنن.

اصغر پایتون‌کار
اصغر پایتون‌کار

اگه این موضوع رو گوگل کنیم از بس تعدادشون زیاده که کلا سردر گم میشیم. اینا یه سریشونن:virtualenvpyenvpipenvvirtualenvwrapperpyenvvirtualenvwrapper آدم کلا نا امید میشه ولی یه توضیحی اینجا هست که شاید بدرد بخوره و من مستقیم میرم سراغ virtualenvکه برای پایتون ۳.۵ جوابه و زیاد نمیرم سراغ جزئیاتش. اگه شما بیشتر میدونین بهم بگین.

نصب

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

$ pip install virtualenv

قدم بعدی ایجاد محیط مجازیست.

$ virtualenv mypython

این دستور یک همچین ساختاری رو توی پوشه‌تون ایجاد میکنه که پکیج‌هایی که نصب میکنیم اینجا میرن و فعلا از اینجا فایل activate مهمه.

├── 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

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

$ source bin/activate
(env) $

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

$ pip freeze > requirments.txt

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

$ pip install -r requirments.txt


پایتونآموزشبرنامه‌نویسیجانگو
توسعه دهنده وب و گیک
شاید از این پست‌ها خوشتان بیاید