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


زمانی که شروع به یادگیری یک زبان جدید برنامهنویسی میکنیم، طبیعی است که در یادگیری دستور زبان، ساختارها و کتابخانهها با مشکل مواجه شویم. این موضوع به طور خاص در زمان یادگیری نخستین زبان برنامهنویسی بیشتر به چشم میخورد. در این میان یادگیری شیوه مدیریت یک محیط به طور معمول در دسته مواردی قرار میگیرد که کاملاً نادیده گرفته شدهاند. در این مقاله با روش مدیریت محیط مجازی پایتون آشنا خواهیم شد.
ممکن است در زمان یادگیری زبان برنامهنویسی تا مدتها با موقعیتی مواجه نشده باشید که به «محیط مجازی» (Virtual Environment) نیاز پیدا کنید، اما وقتی که با چنین موقعیتی برخورد کنید، به نظرتان خواهد رسید که با یک پوشه سیستمی سازماننیافته مواجه شدهاید که کاملاً سردرگمکننده است.
برای این که بتوانید پایتون را به شیوهای اصولی یاد بگیرید، بهتر است که با مفهوم محیطهای مجازی آن آشنا باشید. در ادامه این راهنما با چالشهای که محیطهای مجازی میتوانند رفع کنند و شیوه استفاده از آنها آشنا میشویم.
چیستی و چرایی محیطهای مجازی
محیط مجازی چنان که از نام آن برمیآید یک فضای مجازیشده است که از دنیای اطراف خود مجزا گشته است. معنی این حرف آن است که همه شلوغیهای دنیای خارج راهی به درون محیط مجازی نمییابند.
سناریوی زیر را تصور کنید. ما مشغول یادگیری پایتون هستیم و شروع به استفاده بیحد از دستور نصب pip میکنیم. هر چیزی را که پیدا کنیم روی سیستم نصب میکنیم، جدیدترین نسخه همه نرمافزارها را دانلود میکنیم و در نهایت میخواهیم یک راهنمای عملی را پیگیری کنیم، اما به نسخه قدیمیتر از یک پکیج نصبشده نیاز داریم. با این حال پروژه قبلی ما از قابلیتهای جدیدتر این پکیج استفاده کرده است و بنابراین با یک مشکل مواجه میشویم.
اگر در فضای کاری خود از محیط مجازی پایتون استفاده کنیم، این سناریو هرگز رخ نمیدهد. به این ترتیب پکیجها به صورت لوکال درون محیط مجازی نصب میشوند و از بروز تداخل جلوگیری میکنیم.
آغاز کار با محیط مجازی پایتون
علاوه بر مزیتهای عملی محیطهای مجازی، یکی از بهترین قابلیتهای آنها سهولت استفادهشان است. برای استفاده از محیطهای مجازی نیاز به تلاش زیادی ندارید. در واقع دشوارترین بخش کار، عادت دادن خودتان به استفاده از آنها است که دقیقاً به همین دلیل توصیه میکنیم آنها را سریعتر بیاموزید.
در این راهنما فرض میکنیم که شما با پایتون 3 کار میکنید و از این رو محیطهای مجازی به صورت نیتیو و بدون نیاز به دانلود چیز دیگری در اختیار شما قرار دارند. برای شروع باید یک دایرکتوری به نام my_python_venvs ایجاد کرده و وارد آن شوید:
mkdir my_python_venvs cd my_python_venvs
این دایرکتوری را میتوان به عنوان دایرکتوری والد برای محیطهای مجازی تصور کرد. اکنون با استفاده از دستورهای زیر یک محیط مجازی ایجاد کنید.
python3 -m venv my_venv
این دستور ماژول venv را اجرا میکند و نام محیط مورد نظر ما را تعیین میکند. پس از اجرای این دستور هیچ بازخورد قابل نمایشی روی صفحه نمیبینید، اما یک لیستبندی دایرکتوری جدید نشان میدهد که دایرکتوری جدید شامل محیط مجازی است.
سپس باید محیط مجازی خود را فعال کنیم. در واقع در عمل اعلام میکنیم که شروع به کار در این محیط مجازی کردهایم. در غیر این صورت پایتون از تنظیمات سراسری استفاده میکند، هر چند درون دایرکتوری محیط مجازی قرار داشته باشیم.
cd my_venv source bin/activate
در این زمان باید نام محیط مجازی را در پرانتز در ابتدای اعلان فرمان مشاهده کنیم. اکنون کمی به گردش در اطراف میپردازیم. به داخل دایرکتوری/bin بروید تا اسکریپت activate را ببینید که قبلاً اجرا کردیم و هم چنین پایتون و pip را میبینید. برخی ماژولها وجود دارند که در محیط ما قرار دارند. تلاش کنید تا یک پکیج را نصب کرده و دوباره لیستی از دایرکتوری بگیرید تا ببینید که این پکیج به صورت لوکال درون آن نصب شده ست.
در نهایت برای توقف کار درون محیط مجازی باید از دستور تککلمهای زیر استفاده کنیم:
Deactivate
بدین ترتیب مشاهده میکنیم که اعلان فرمان به حالت نرمال بازمیگردد و محیط ما منتظر میماند تا دفعه بعد که آن را فعال کنیم.
سخن پایانی
هر بار که با پروژه یا قطعه کد جدیدی مواجه میشویم، بسیار مشتاق هستیم که آن را هر چه زودتر آغاز کنیم، اما باید عادت کنیم که ترمز را بکشیم و ابتدا یک محیط مجازی را راهاندازی کنیم.
به خاطر داشته باشید که محیطهای مجازی در پایتون نسخه 3 به بعد به صورت نیتیو درون این زبان تعبیه شدهاند و میتوانند با یک دستور منفرد ایجاد شوند. شما باید محیط را فعال کنید تا بتوانید از مرزبندی آنها بهره بگیرید. زمانی که محیط فعال شد، پکیجها به صورت خودکفا درمیآیند و به این ترتیب از بروز تعارض با پروژههای دیگر و نصب پکیجها با نسخههای مختلف جلوگیری میکنیم.
عالی بود سپاس
سلام
وقت شما بخیر
الان من متوجه شدم چه جوری میشه یک محیط مجازی رو ایجاد و active کرد.
حالا سوال من اینه که چه جوری از این محیط مجازی باید استفاده کرد؟ آیا باید این رو import کرد؟
میشه لطفا توضیح بدید.
ممنونم