কম্পিউটার টিউটোরিয়াল

পাইথন ভার্চুয়াল এনভায়রনমেন্ট (Virtual Environment)


ভূমিকা

ডেভেলপাররা প্রায়শই পাইথন প্রজেক্টে কাজ করে যেখানে তাদের মডিউল এবং প্যাকেজ ব্যবহার করতে হয় যেগুলো পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ নয় এবং সেগুলো শুধু সেই নির্দিষ্ট অ্যাপ্লিকেশনের জন্য দরকার। একটি কেস বিবেচনা করুন, আপনি পাইথনের বর্তমান ভার্সন ইনস্টল করেছেন (ধরে নিই এটি পাইথন-৩.৬) কিন্তু আপনার প্রজেক্টের জন্য নির্দিষ্ট পাইথন ভার্সন -- ২.৭ দরকার এই নির্দিষ্ট অ্যাপ্লিকেশনের জন্য, তাহলে এটি শুধু নতুন প্যাকেজের বিষয় নয় বরং আপনার ইতিমধ্যে ইনস্টল করা অ্যাপ্লিকেশনের একটি নির্দিষ্ট ভার্সনের জন্যও দরকার হতে পারে। তাহলে প্রয়োজনীয়তা_conflict_হবে এবং ২.৭ বা ৩.৬ যেকোনো ভার্সন ইনস্টল করলে একটি অ্যাপ্লিকেশন চালানো সম্ভব হবে না।

এই পরিস্থিতি সমাধানের একটি সমাধান হলো আপনার প্রজেক্টের জন্য একটি ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা। Virtualenv হলো একটি টুল যা আমাদের পৃথক পাইথন এনভায়রনমেন্ট তৈরি করতে দেয়। Virtualenv একটি সেলফ-কনটেইন্ড ফোল্ডার তৈরি করে যেটিতে পাইথন প্রজেক্টের জন্য প্রয়োজনীয় সকল এক্সিকিউটেবল থাকে।

কেন আমরা এটি চাই?

ভার্চুয়াল এনভি বা ভার্চুয়াল এনভায়রনমেন্ট টুল ব্যবহারের মূল উদ্দেশ্য হলো ডিপেন্ডেন্সি, ভার্সন (পাইথন প্যাকেজের) এবং পরোক্ষভাবে পারমিশনের সমস্যা সমাধান করা।

ভার্চুয়াল এনভায়রনমেন্ট ইনস্টল করার জন্য প্রয়োজনীয়তা

প্রথমে প্রথম, আপনার মেশিনে পাইথন ইনস্টল করা থাকতে হবে (অনিবার্যভাবে লেটেস্ট ভার্সন নয়) এবং pip প্যাকেজ ম্যানেজার। যাইহোক, আপনি যদি পাইথন ৩.৪ ভার্সন বা উচ্চতর ব্যবহার করেন, তবে pip ডিফল্টভাবে অন্তর্ভুক্ত থাকে (পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ হিসেবে)। যদি আপনার কাছে তাদের মধ্যে যেকোনো একটি না থাকে, তবে প্রথমে ইনস্টল করা সুপারিশ করা হয়।

ভার্চুয়াল এনভায়রনমেন্ট তৈরি করা

আপনার কমান্ড প্রম্পট খুলুন (Run টার্মিনালে cmd টাইপ করুন)। এখন সেই ডিরেক্টরি পাথ (লোকেশন) এ যান, যেখানে আপনি ভার্চুয়াল এনভায়রনমেন্ট ইনস্টল করতে চান।

যদি আপনি পাইথন ৩.x ব্যবহার না করেন, তবে pip-এ virtualenv টুল ইনস্টল করতে হবে।

Shell

pip install virtualenv

যদি virtualenv ইতিমধ্যে ইনস্টল করা থাকে (তবে আপনি পাইথন ৩ ভার্সন ব্যবহার করছেন অথবা আপনি জানেন না virtualenv ইতিমধ্যে ইনস্টল করা আছে), তবে উপরের কমান্ড রান করলে আপনাকে কিছু এইরকম মেসেজ দেখাবে:

>pip install virtualenv
Requirement already satisfied: virtualenv in c:\python\python361\lib\site-packages (15.1.0)

একটি নতুন ফোল্ডার তৈরি করুন কাজ করার জন্য:

Shell

mkdir python-virtual-environments && cd python-virtual-environments

উপরের কমান্ড রান করার পর, আপনি নতুন তৈরি ফোল্ডারের ভেতরে আছেন। এখন ডিরেক্টরির ভেতরে (আপনি যা উপরে তৈরি করেছেন) একটি নতুন ভার্চুয়াল এনভায়রনমেন্ট তৈরি করুন।

Shell

# পাইথন ২.x ভার্সনের জন্য -

virtualenv myenv

# পাইথন ৩.x ভার্সনের জন্য -

python -m venv myenv

উপরের স্ক্রিপ্ট myenv নামে একটি নতুন ফোল্ডার তৈরি করবে কিছু ডিরেক্টরি এবং অনেক ফাইলসহ, নিচের মত ডিরেক্টরি স্ট্রাকচার সহ -

├── Include
│   ├── abstract.h
│   ├── accu.h
│   ├── asdl.h
│   ├── ast.h
│   ├── bitset.h
...
├── Lib
│   ├── __future__.py
│   ├── __pycache__
│   ├── _bootlocale.py
│   ├── _collections_abc.py
│   ├── _dummy_thread.py
│   ├── _weakrefset.py
│   ├── abc.py
│   ├── base64.py
│   ├── bisect.py
│   ├── codecs.py
...
├── pip-selfcheck.json
├── Scripts
│   ├── activate
│   ├── activate.bat
│   ├── activate.ps1
│   ├── activate_this.py
│   ├── deactivate.bat
│   ├── easy_install.exe
│   ├── easy_install-3.6.exe
│   ├── pip.exe
│   ├── pip3.6.exe
│   ├── pip3.exe
│   ├── python.exe
│   ├── python36.dll
│   ├── pythonw.exe
│   └── wheel.exe

যেখানে -

  • Include (ডিরেক্টরি): পাইথন প্যাকেজ কম্পাইল করার জন্য C হেডার

  • Scripts (ডিরেক্টরি): ভার্চুয়াল এনভায়রনমেন্টের সাথে ইন্টারঅ্যাক্ট করার ফাইলস

  • Lib (ডিরেক্টরি): পাইথন ভার্সন কপি এবং site-packages ডিরেক্টরি যেখানে প্রতিটি ডিপেন্ডেন্সি ইনস্টল থাকে।

ভার্চুয়াল এনভায়রনমেন্ট এক্টিভেট কীভাবে করবেন?

সקרিপ্টস ডিরেক্টরিতে activate স্ক্রিপ্টগুলো একটি আকর্ষণীয় ফাইল। activate স্ক্রিপ্টগুলো এনভায়রনমেন্টের পাইথন এক্সিকিউটেবল এবং এর site-package ডিফল্টভাবে ব্যবহার করে আপনার শেল সেট আপ করে।

যাইহোক, এই ভার্চুয়াল এনভায়রনমেন্ট "myenv" প্যাকেজ বা রিসোর্স আলাদা করে ব্যবহার করতে, আপনাকে প্রথমে এটি "activate" করতে হবে। আপনার ভার্চুয়াল এনভায়রনমেন্ট এক্টিভেট করতে নিচের কমান্ড রান করুন স্ক্রিনশটে দেখানো মতে।

পাইথন ভার্চুয়াল এনভায়রনমেন্ট (Virtual Environment)

একবার ভার্চুয়াল এনভায়রনমেন্ট এক্টিভ হয়ে গেলে, আমরা প্রজেক্ট সম্পর্কিত সকল প্যাকেজ এবং অন্যান্য ডিপেন্ডেন্সি বাইরের জগত থেকে আলাদা করে ইনস্টল করতে পারি। উদাহরণস্বরূপ, যদি আমরা একটি ডেটা সায়েন্স প্রজেক্টে কাজ করি, তবে আমরা সকল প্রয়োজনীয় প্যাকেজ এবং তাদের ডিপেন্ডেন্সি একসাথে সহজে ইনস্টল করতে পারি, নিচের কমান্ড টাইপ করে:

(myenv) C:\Users\rajesh\python-virtual-environments>pip install numpy scipy matplotlib ipython jupyter pandas

প্রজেক্ট শেষ হলে, আমরা সিম্পlemente ডি-অ্যাক্টিভেট করে ভার্চুয়াল এনভায়রনমেন্ট থেকে বের হতে পারি।

(myenv) C:\Users\rajesh\python-virtual-environments>deactivate
C:\Users\rajesh\python-virtual-environments>

এখন আমরা ফিরে উইন্ডোজ কমান্ড শেলে আছি (উপরের মত)।


  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে লগিং (Logging) – সম্পূর্ণ গাইড

  3. পাইথনে ক্যালেন্ডার মডিউল – ক্যালেন্ডার প্রিন্ট, লিপ ইয়ার, মাস রেঞ্জ

  4. পাইথনে Anaconda এনভায়রনমেন্টে প্যাকেজ যোগ করা