ভার্চুয়াল ইনভার্নমেন্ট ?
মনে করি আমাদের একটি প্রজেক্ট করতে হবে পাইথন এর কিছু লাইব্রেরি নির্দিষ্ট ভার্সন দিয়ে আবার আরেকটি প্রজেক্ট করতে হবে ওই একই লাইব্রেরি দিয়ে কিন্তু অন্য ভার্সন। আমরা যখন পাইথন লাইব্রেরি পিপ দিয়ে ইনস্টল করি তখন যদি ভার্সন নাম্বার না বলে দেই তাহলে তাহলে লেটেস্ট ভার্সন ডাউনলোড হয় আর যখন ভার্সন বলে দেয় তখন ওই ভার্সনটি বলে দেই। তাহলে আমরা দুইটি প্রজেক্ট এ লাইব্রেরি টি কিভাবে ম্যানেজ করবো যদি লেটেস্ট ভার্সন ব্যবহার করি তাহলে প্রথম প্রজেক্ট এ কাজ করবে না আবার দ্বিতীয় প্রজেক্ট এ কাজ করবে না। এই সমস্যা সমাধানের জন্যই ভার্চুয়াল ইনভার্নমেন্ট । আমরা যখন পিপ দিয়ে লাইব্রেরি ইনস্টল করি তখন এটা ডিফল্ট ভাবে আমাদের পাইথন গ্লোবাল ইনভেরনমেন্ট এ ইনস্টল হয় যেটা থেকে কম্পিউটার এর যেকোন ফোল্ডারে কমান্ড করলে ওই ইনভেরনমেন্ট এ ইনস্টল হয় আর যদি আমরা আরেকটি ইনভার্নমেন্ট তৈরী করি এবং এক্টিভ করে তখন নতুন ইনভার্নমেন্ট এ সব ইনস্টল হয় এভাবে আমরা ইচ্ছামত ইনভার্নমেন্ট তৈরী করতে পারি। আরেকটি সুবিধা হলো মনে করো তুমি এতদিন তোমার ডিফল্ট ইনভার্নমেন্ট এ কাজ করেছো এবং অনেক পাইথন লাইব্রেরি ইন্স্টল্ করেছো পাইথনের একটি কমান্ড আছে ইনস্টল লাইব্রেরি দেখার জন্য তুমি django দিয়ে একটি প্রজেক্ট তৈরী করলে এবং
pip freeze requirements.txt কমান্ড দিলে একটি requirements.txt নামে ফাইল তৈরী হবে এবং আমাদের ইনভার্নমেন্ট এ যত বাইরের লাইব্রেরি ইনস্টল করা আছে সবগুলোর নাম ভার্সন সহ দেখাবে এখন তুমি এযাবৎ পাইথন নিয়ে কাজ করার জন্য অনেক লাইব্রেরি ইনস্টল করেছো সব এখানে লিস্ট আকারে ফাইলে লেখা থাকবে পরে যখন নতুন কোন কম্পিউটার এ এই প্রজেক্ট টি চালাতে যাবে ওই কম্পিউটার এ হয়তো এই প্রজেক্ট চালানোর লাইব্রেরি আগে থেকে ইনস্টল নেই এখন সে যদি requirements.txt থেকে সব ইনস্টল করে তাহলে চলবে কিন্তু সব গুলো তো এই প্রজেক্টের জন্য দরকার নেই এই সমস্যার জন্য প্রত্যেকটা প্রজেক্টের জন্য আলাদা আলাদা ভার্চুয়াল ইনভার্নমেন্ট তৈরী করে কাজ করা একজন ভালো ডেভেলপার এর পরিচয় আশা করি আশা করি বুঝতে পেরেছো।
ভার্চুয়াল ইনভার্নমেন্ট তৈরী করলে আসলে কি ঘটে
ভার্চুয়াল ইনভার্নমেন্ট বানালে সে পাইথন এর ইন্টারপোর্টার কে কপি করে এবং পরবর্তীতে যা যা ভার্চুয়াল ইনভার্নমেন্ট একটিভ থাকা অবস্থায় কমান্ড প্রম্প এর মাদ্ধমে ইনস্টল করবো সব ভার্চুয়াল ইনভার্নমেন্ট এ ইনস্টল হবে।
ভার্চুয়াল ইনভার্নমেন্ট তৈরি করা
ভার্চুয়াল ইনভার্নমেন্ট তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান:
python3 -m venv venv_nameএই কমান্ডটি একটি নতুন ডিরেক্টরি তৈরি করবে যাতে একটি Python ইন্টারপ্রিটার, pip প্যাকেজ ম্যানেজার এবং অন্যান্য প্রয়োজনীয় ফাইলগুলি থাকবে।
ভার্চুয়াল ইনভার্নমেন্ট সক্রিয় করা
একবার আপনি একটি ভার্চুয়াল ইনভার্নমেন্ট তৈরি করলে, আপনাকে এটি সক্রিয় করতে হবে। এটি করতে venv বা যে নামে ভার্চুয়াল ইনভার্নমেন্ট তৈরী করেছি ওই ফোল্ডারে যাই এবং ওই ফোল্ডারে কমান্ড প্রম্প ওপেন করে নিম্নলিখিত কমান্ডটি চালান:
venv_name/Scripts/activateভার্চুয়াল ইনভার্নমেন্ট থেকে বেরিয়ে যাওয়া
ভার্চুয়াল ইনভার্নমেন্ট থেকে বেরিয়ে যাওয়ার জন্য, নিম্নলিখিত কমান্ডটি চালান:
deactivateউদাহরণ
একটি ভার্চুয়াল ইনভার্নমেন্ট তৈরি করার জন্য, নিম্নলিখিত কমান্ডটি চালান:
python3 -m venv djangomongovenvএই কমান্ডটি একটি নতুন ডিরেক্টরি তৈরি করবে যা djangomongovenv নামে পরিচিত।
ভার্চুয়াল ইনভার্নমেন্ট সক্রিয় করতে, নিম্নলিখিত কমান্ডটি চালান:
djangomongovenv/Scripts/activate
এখন এই কমান্ড প্রম্প এ যা যা ইনস্টল করবো ভার্চুয়াল ইনভার্নমেন্ট এ ইনস্টল হবে