خُب، توی پُست قبلی به معرفی مفهوم Virtual environment و همچنین ابزار virtualenv پرداختیم. توی این پست میخواهیم بریم یکی دیگه از این ابزارها که گفتیم خیلی حرفهای تر هست، رو خدمت شما معرفی کنیم.
اسم این ابزار virtualenvwrapper هست. همونطور که از اسمش پیداس درحقیقت یک wrapper (رَپِر معمولاً به ابزاری گفته میشه که اومده تا کار با چیزه دیگه رو راحتتر کنه) برای virtualenv هست. یعنی قرار هست با این ابزار کار با virtualenv خیلی خیلی راحتتر از قبل بشه. اما مگه virtualenv چه ویژگیهای بدی داشت که باعث میشد کار باهاش سخت بشه؟
cd My_Project virtualenv venv ae # or source venv/bin/activate
و گفتیم این یک دایرکتوری کنار فایلهای دیگهتون میسازه. عیب این کار موقعی معلوم میشه که شما از یک ورژن کنترلر (گیت و دیگر دوستان) استفاده بکنید. اون وقت برای اینکه ورژن کنترلرتون هی به دایرکتوری venv گیر نده باید توی یک فایل .gitignore بهش بگید با این دایرکتوری کاری نداشته باش. یا اینکه بعضی اوقات حواستون نیست این دایرکتوری محترم رو جایی آپلود میکنید(مثلا روی گیتهاب). در حقیقت انگار یه چیزایی که اصلا نباید اونجا باشن،کنار فایلهای پروژتون قرار گرفتن.
اول میریم سراغ نصبش: میگیم پیپ پکیج virtualenvwrapper رو به صورت system-wide برای ما نصب کن:
sudo -H pip install virtualenvwrapper
پکیج virtualenvwrapper برخلاف برنامه قبلی، کار خیلی خوبی که میکنه اینه تمام virtual environment هارو توی یک دایرکتوری که ما بهش میگیم کجاست ذخیره میکنه و این یعنی جداسازی کدها و پکیجهای پایتونی که نصب میکنیم و باعث میشه دیگه مشکلاتی که بالا گفتم رخ نده.
خب برای ادامه کار، دو تا دستور پایین رو توی فایل bashrc. یا zshrc. یا کانفیگ هر شِلِ دیگهای که استفاده میکنید بذارید:
# virtualenvwrapper configuration
export WORKON_HOME=$HOME/.virtualenvs # Save all virtual environment in this path
source /usr/local/bin/virtualenvwrapper.sh # Activate it please
دستور اول داره میگه که تمام virtual environmentهای مارو توی دایرکتوری virtualenvs. ذخیره کن و دستور بعدی باعث میشه که virtualenvwrapper فعال بشه(واسه اینکه این تنظیمات اجرا باشه باید یکبار ترمینالتون رو باز بسته کنید یا کانفیگ فایلتون رو reload کنید).
الان اگه همه چیز رو بدرستی نصب و اجرا کرده باشید، یک سری کامندهای جدید به سیستمتون اضافه شده که اونا در حقیقت قابلیتهای باحال virtualenvwrapper حساب میشن.
mkvirtualenv my_first_venv
هر موقع هم خواستید غیرفعالش کنید، کافیه بگیر غیرفعال شو: deactivate.
دستور workon: با این دستور میتونید هر موقع خواستید بین virtual environmentهاتون جابجا بشید. اگه این دستور رو بدون هیچ گونه پارامتری بزنید کل virtual environmentهاتون رو نشون میده. اگه بعدش اسم virtual environmentای رو بزنید به اون سوئیچ میکنه. مثال:
workon # this will print all available virtual environ
workon my_first_venv # switch to this virtual environment
ابزار virtualenvwrapper کامندهای باحال دیگه هم داره که من دیگه اونارو میذارم به عهده خودتون اینم لینکش.
میشه گفت ما دو تا از بهترین ابزارهای virtual environment رو توی پایتون گفتیم. یه ابزاری هم هست که خیلی چیز جالبیه و من اون رو میذارم تو قسمت ساخت پکیج توی پایتون میگم. اما اگه خیلی دوس دارید یه آشنایی با اون پیدا کنید به اینجا برید. مثل همیشه اگه این بخش خوشتون اومده حتما این صفحه رو به دوستای خوبتون معرفی کنید.