وب لاگ امیرحسین اسعدی

آنچه یادگرفتم، خواندم و دیدم رو اینجا به اشتراک می‌گذارم
I share what I learned, read and saw

طبقه بندی موضوعی
آخرین نظرات
  • ۸ خرداد ۰۲، ۱۵:۲۲ - احمد صداقت زاده
    عالی

۲ مطلب در آذر ۱۳۹۹ ثبت شده است

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

فرض کنید شما یک وبسایت با زبان پایتون نوشتین و از دو تا کتابخونه numpy نسخه ۸ و pillow نسخه ۵ استفاده می‌کنید، در حالت عادی میشه انیطوری تشبیه کرد که هر وقت میخواین سایتتون رو اجرا کنید سایتتون کتابدار(شاید این نقش سیتم عامل باشه) رو صدا میزنه و میگه منو وصل کن به کتابخونه numpy و بعدش کارشو انجام میده. حالا فرض کنید شما برای انجام دادن مشق دانشگاه تون لازمه که نسخه ۱۰ numpy رو نصب کنید، حلا که میخوای سایتت ور اجرا کنی وقتی سایتت کتابدار رو صدا میزنه میگه نام پای رو برام بیار همه حرفای این نام پای جدید رو نمی فهمه در نتیجه به خطا بر میخوره.

راه حل چیه؟ شما باید محیط برنامه هاتون رو کپسوله کنید یعنی هر برنامه توی یک اتاق جدا با یک کتاب دار جدا باشه پس من یک اتاق جدید درست میکنم روی درش هم مینویسم سایت من و روش همون نامپای ۸ و پیلو ۵ رو نصب میکنم و سایتمو میندازم اون تو از این به بعد هر بار سایتم رو اجرا کنم اون کتاب دار خودشو داره و کتبادارش هم نامپای نسخه رو براش میاره و کارش راه میفته از طرف دیگه هم یک اتاق دیگه دارم به اسم مشق یادگیری ماشین که اونجا نام پای ۱۰ رو نصب کرده و هر وقت برنامه‌شو اجرا میکنم کتابدار اون اتاق برای برنامه نامپای ۱۰ رو میاره و دیگه این دو برنامه برای هم تداخلی ایجاد نمیکنن.

venv

حالا چطوری میتونه اتاق های جدا داشته باشیم یا به عبارت دیگه برنامه هامون رو کپسوله کنیم؟

برای نصب راهنمای رسمی خودشون رو از این آدرس دنبال کنید

https://virtualenv.pypa.io/en/latest/index.html

حالا که نصب کردین برین اونجا که میخواین پروژه تون رو ایجاد کنید و یک دایرکتوری به اسم پروژتون ایجاد کنید بعد این دستور رو وارد کنید

virtualenv my_mashgh

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

my_mashgh\Scripts\activate

حالا باید اول دستورات تون این عبارت ظاهر شده باشه (venv) که یعنی دیگه وارد اتاق شدین :) و حالا میتونید هر نسخه از هر کتابخونه ای که دوست دارین رو نصب کنید بدون اینکه به کل سیستم اعمال بشه.

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

my_mashgh\Scripts\deactivate.bat

GIJMIJ

There are some words in scince which they are close in first look but diffenent in meaning in GIJMIJ( in memory of Peyman my BA room mate who always fu*k your mind with this trick) I want to write them and use google to find their one line definition and share it with you.