# ভার্চুয়াল এনভায়র্নমেন্ট ইন্সটল

পাইথন প্রোগ্রামার হিসেবে ভার্চুয়াল এনভায়র্নমেন্ট এর সাথে পরিচিত আছেন আশা করি। তাও সংক্ষেপে বলি, ভার্চুয়াল এনভায়র্নমেন্ট হল একটা পাইথন ইন্টারপ্রেটার ইন্সটেন্স! কঠিন হয়ে গেল!? ধরি আপনার কম্পিউটারে পাইথন ৩ ইন্টারপ্রেটার ইন্সটল করা আছে, এবং সেখানে জ্যাঙ্গো ১.১১ ভার্শন ইন্সটল করা আছে। এখন আপনি এমন একটা প্রোজেক্ট করতে চান যেটাতে জ্যাঙ্গো ১.৮ ব্যবহার করা লাগবে তাহলে কি করবেন!? আগের জ্যাঙ্গো ১.১১ রিমোভ করে জ্যাঙ্গো ১.৮ ইন্সটল করবেন!? আবার যদি অন্য কোন প্রজেক্টে জ্যাঙ্গোর লেটেস্ট ভার্শন ২.০ দরকার হয় তখন কি করবেন?

বিভিন্ন ধরনের প্রজেক্টে বিভিন্ন ভার্শনের প্যাকেজ/মডিউল ব্যবহার করতে হয়, কিন্তু একটা মাত্র পাইথন ইন্টারপ্রেটারে একই প্যাকেজের একাধিক ভার্শন ইন্সটল করা যাবেনা! তাই সবচাইতে ভালো হবে যদি আপনি পাইথনের ইন্টারপ্রেটারটাই কপি করে ফেলেন! প্রতিটি প্রজেক্টের জন্য আলাদা ভাবে একটা পাইথন ইন্টারপ্রেটার থাকবে, সেখানে শুধুমাত্র সেই প্রজেক্টের জন্য দরকারি মডিউল/প্যাকেজগুলোই ইন্সটল করা থাকবে! এতে করে প্যাকেজের ভার্শন নিয়ে কোন সমস্যা হবেনা, এবং প্রোজেক্ট লাইভ সার্ভারে ডেপ্লয় করতে সুবিধা হবে।

ভার্চুয়াল এনভায়র্নমেন্ট এই কাজটিই করে, আপনার কম্পিটারের মেইন পাইথন ইন্টারপ্রেটার এর একটা কপি করে দেয়। আপনি সেটা নিজের মত করে ব্যবহার করতে পারেন। আবার দরকার শেষ হয়ে গেলে সেটা ডিলেট করে দিতে পারেন। মেইন পাইথন ইন্টারপ্রেটারে এর কোন প্রভাব পরবেনা!

ভার্চুয়াল এনভায়র্নমেন্ট ব্যবহার করতে প্রথমে কমান্ড প্রম্পট (cmd) ওপেন করুন (লিনাক্সে টার্মিনাল ওপেন করুন)। এর পর pip install virtualenv কমান্ড দিয়ে ভার্চুয়াল এনভায়র্নমেন্ট প্যাকেজটি ইন্সটল করুন। ইন্সটল হয়ে গেলে (বা আগে থেকেই ইন্সটল করা থাকলে) আপনি ভার্চুয়াল এনভায়র্নমেন্ট ব্যবহার করার জন্য প্রস্তুত!

আমাদের জ্যাঙ্গো প্রজেক্ট শুরু করার আগে আমরা ভার্চুয়াল এনভায়র্নমেন্ট তৈরি করে নিব। কমান্ড প্রম্পট ওপেন করে এই কমান্ড দিন! cd desktop এরপর mkdir djangoproject কমান্ড দিয়ে প্রজেক্ট ফোল্ডার তৈরি করুন।\
এখন cd djangoproject কমান্ড লিখুন। এতে এটি প্রজেক্ট এর কারেন্ট ওয়ার্কিং ডিরেক্টরি হিসেবে সেট হবে । তারপর এই কমান্ডঃ virtualenv myfirstenv

![](https://i.imgur.com/o1FfSU9.jpg)

ভার্চুয়াল এনভায়র্নমেন্ট তৈরি হয়ে গেছে, এখন এটা একটিভ করতে হবে। একটিভ করা মানে হল এখন থেকে পাইথনের মেইন ইন্টারপ্রেটারের পরিবর্তে ভার্চুয়াল এনভায়র্নমেন্ট এর মধ্যকার ইন্টারপ্রেটারটি কাজ করবে! আবার কাজ শেষে ডিএকটিভ করে দিতে হবে, তখন ভার্চুয়াল এনভায়র্নমেন্ট এর ইন্টারপ্রেটার আর কাজ করবেনা।

লক্ষ্য করে দেখবেন ডেস্কটপের djangoproject ওয়ার্কিং ডিরেক্টরিতে myfirstenv নামে নতুন একটা ফোল্ডার তৈরি হয়েছে

![](https://i.imgur.com/ZiNVCCn.jpg)

সেটাতে ডাবল ক্লিক করে ভিতরে যান, এরকম কয়েকটি ফোল্ডার দেখবেনঃ

![](https://i.imgur.com/mgRpRjZ.jpg)

সেখানের Scripts ফোল্ডারটিতে (লিনাক্সের ক্ষেত্রে bin ডিরেক্টরিতে ) গেলে এই ফাইলগুলো দেখা যাবেঃ

![](https://i.imgur.com/522A6Pj.jpg)

ফাইলগুলোর নাম দেখে কি বুঝতে পারছেন এগুলো কি? না বুঝলেও সমস্যা নেই! এখানের একটা মাত্র ফাইল আমাদের লাগবে সেটা হল activate কমান্ড প্রম্পট যদি ওপেন করাই থাকে তাহলে সেখানে cd কমান্ড দিয়ে উপরের script ফোল্ডারে আসুনঃ

এর পর activate কমান্ডটি লিখে এন্টার চাপুনঃ (লিনাক্সের ক্ষেত্রে source activate বা . activate ) একটিভ হয়ে গেলে কমান্ড প্রম্পট বা টার্মিনালের লাইনগুলোর শুরুতে প্রথম ব্র্যাকেটের ভিতর ভার্চুয়াল এনভায়র্নমেন্টের নাম দেখে যাবে!

![](https://i.imgur.com/zFwQKjy.jpg)

সবুজ বক্স করা অংশ খেয়াল করুন। ভার্চুয়াল এনভায়র্নমেন্ট একটিভ হয়ে গেলে কমান্ড গুলির শুরুতে () চিহ্নের ভেতরে এনভায়র্নমেন্ট এর নাম লেখা থাকবে।

কাজ শেষে ভার্চুয়াল এনভায়র্নমেন্ট ডিএকটিভেট করে দিতে হবে deactivate কমান্ড দিলেই কাজ হয়ে যাবে।

ভার্চুয়াল এনভায়র্নমেন্ট ইন্সটল, একটিভ করা হল! এখন জ্যাঙ্গো ইন্সটল করতে হবে! মনে রাখবেন, জ্যাঙ্গো কিন্তু ভার্চুয়াল এনভায়র্নমেন্ট এর মধ্যে ইন্সটল হবে/করতে হবে, আপনার মেইন পাইথন ইন্টারপ্রেটারে জ্যাঙ্গো ইন্সটল করা থাকলেও! কারন সেটা আমরা ব্যবহার করবনা, আমরা ব্যবহার করব ভার্চুয়াল এনভায়র্নমেন্ট এর জ্যাঙ্গো!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://django.howtocode.dev/virtualenv_install.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
