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

পাইথন এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করার পদ্ধতি

যখন আপনি বিভিন্ন এনভায়রনমেন্ট জুড়ে ডেভেলপ করেন, তবে আপনি প্রতিটি এনভায়রনমেন্টের জন্য আলাদা কনফিগারেশন ভ্যালু স্পেসিফাই করতে চাইতে পারেন। যে কম্পিউটারে আপনি একটি অ্যাপ্লিকেশন ডেভেলপ করেছেন সেটি সেটি কম্পিউটারের সাথে একই নহीं যেখানে আপনি অ্যাপ্লিকেশন ডিপ্লয় করবেন।

সেইসঙ্গে এনভায়রনমেন্ট ভেরিয়েবল কাজে আসে!

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

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

এনভায়রনমেন্ট ভেরিয়েবল হল একটি ভেরিয়েবল যার মান একটি প্রোগ্রামের বাইরে সেট করা হয়।

এনভায়রনমেন্ট ভেরিয়েবল আপনাকে একটি ভেরিয়েবলের জন্য আলাদা মান সেট করতে দেয় এনভায়রনমেন্টের উপর নির্ভর করে যেখানে আপনি একটি অ্যাপ্লিকেশন বিল্ড করছেন।

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

অনেক অ্যাপ্লিকেশন, বিশেষ করে কোলাবোরেটিভ वाले, একাধিক ভিন্ন এনভায়রনমেন্ট থাকে। একটি এনভায়রনমেন্ট টেস্টিং-এর জন্য ব্যবহার হবে, অন্যটি প্রোডাকশনের জন্য, এবং আরও একটি ডেভেলপমেন্টের জন্য। এই এনভায়রনমেন্টগুলো প্রায়শই আলাদা কনফিগারেশন ভ্যালু থাকে যা সেট করা দরকার।

প্রোডাকশনে আপনি যে API কীগুলো ব্যবহার করেন সেগুলো সম্ভবত আপনার লোকাল মেশিনে ব্যবহার করার মত নহीं। আপনি আপনার লোকাল মেশিনে অ্যাপ্লিকেশন বিল্ড করার সময় ডামি ডেটা ব্যবহার করতে পারেন, কিন্তু এটি প্রোডাকশন এনভায়রনমেন্টের জন্য উপযুক্ত নহीं।

এনভায়রনমেন্ট ভেরিয়েবলের মান আপনার প্রোগ্রাম পরিবর্তন না করেই বদলানো যায়। এর মানে আপনি সহজে আপনার কোডে পরিবর্তন ডিপ্লয় করতে পারেন কোনো নতুন এনভায়রনমেন্টের জন্য কনফিগারেশন ভ্যালু সাবস্টিটিউট না করেই।

এনভায়রনমেন্ট ভেরিয়েবল সিকিউরিটি উদ্দেশ্যে ও ব্যবহার করা হয়। একটি মেইন প্রোগ্রামের ভিতরে API কী এবং কনফিগারেশন ভ্যালু লিখা রিস্কি হতে পারে কারণ প্রজেক্টের সবাই সেগুলো দেখতে পায়। যদি আপনি একটি মান এনভায়রনমেন্ট ভেরিয়েবলে স্টেট করেন, তবে শুধু আপনার প্রোগ্রাম এবং যে ডেভেলপার ভেরিয়েবলটি সেট করেছেন সে ही এটিকে অ্যাক্সেস করতে পারবেন।

এনভায়রনমেন্ট ভেরিয়েবল সেট করার পদ্ধতি

চলুন একটি এনভায়রনমেন্ট ভেরিয়েবল তৈরি করে শুরু করি। একটি এনভায়রনমেন্ট ভেরিয়েবল শুধু আপনার পাইথন সেশন শেষ না হওয়া পর্যন্ত টিকে থাকবে। এর মানে একবার আপনি আপনার পাইথন ইন্টারপ্রেটার ক্লোজ করলে, ভেরিয়েবলটি আপনার পাইথন স্ক্রিপ্টে রিসেট হয়ে যাবে।

আমরা একটি অ্যাপ বিল্ড করছি যা Airtable API ব্যবহার করে। আমরা আমাদের কোড GitHub-এ শেয়ার করব তাই আমরা আমাদের API কী পাবলিকলি দেখাতে চাই না। আমাদের API কী আমাদের কোডে যোগ করতে পাবলিকলি শেয়ার না করেই, আমরা একটি এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করব।

প্রথম ধাপ হল os লাইব্রেরি ইম্পোর্ট করা:

import os

এই লাইব্রেরীতে পাইথন এনভায়রনমেন্ট ভেরিয়েবলের সাথে কাজ করার কোড থাকে। পরবর্তীতে, আমরা একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করব:

os.environ["AIRTABLE_KEY"] = "YOUR_API_KEY"

এই কোডটি AIRTABLE_KEY নামে একটি ভেরিয়েবল সেট করবে। এর মান YOUR_API_KEY। একটি এনভায়রনমেন্ট ভেরিয়েবল অ্যাসাইন করা ডিকশনারিতে ভ্যালু চেঞ্জ করার মতোই কাজ করে।

আপনাকে আপনি যে ভেরিয়েবলটি সেট বা চেঞ্জ করতে চান তার নাম স্পেসিফাই করতে হবে, তারপর একটি ইকুয়ালস সাইন, তারপর আপনি যে মানটি ভেরিয়েবলে অ্যাসাইন করতে চান।

এনভায়রনমেন্ট ভেরিয়েবল চেঞ্জ করতে একই সিনট্যাক্স ব্যবহার করা যায়:

os.environ["AIRTABLE_KEY"] = "YOUR_API_KEY_2"

আমাদের API কী এর মান এখন YOUR_API_KEY_2 এ চেঞ্জ হয়েছে।

এনভায়রনমেন্ট ভেরিয়েবল রিট্রিভ করার পদ্ধতি

আমরা শুধু একটি এনভায়রনমেন্ট ভেরিয়েবল সেট করেছি। আপনার মনে প্রশ্নটি হল: আমরা মানটি কীভাবে রিট্রিভ করব? সেটিই যেখানে আমরা os.environ.get() মেথড ব্যবহার করতে পারি।

চলুন আমাদের AIRTABLE_KEY ভেরিয়েবলের মান রিট্রিভ করি:

api_key = os.environ.get("AIRTABLE_KEY")
print(api_key) 

আমরা স্টেট করেছি যে আমরা AIRTABLE_KEY এনভায়রনমেন্ট ভেরিয়েবলের মান পেতে চাই। আমরা এই মানকে api_key নামে একটি নতুন ভেরিয়েবলে অ্যাসাইন করি এবং তারপর কনসোলে প্রিন্ট করি।

আমাদের কোড রিটার্ন করে: YOUR_API_KEY_2।

আপনি os.environ-এর কন্টেন্ট প্রিন্ট করে আপনার সেট করা সব এনভায়রনমেন্ট ভেরিয়েবলের একটি লিস্ট রিট্রিভ করতে পারেন:

print(os.environ)

পাইথনের ভিতরে কিছু ডিফল্ট এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকে। এর মানে একটি পাইথন প্রোগ্রামের ভিতরে সেট করা সব এনভায়রনমেন্ট ভেরিয়েবল প্রিন্ট আউট করলে একটি লম্বা লিস্ট রিটার্ন হতে পারে।

এনভায়রনমেন্ট ভেরিয়েবল ডিলিট করার পদ্ধতি

আপনি একটি পাইথন প্রজেক্টের ভিতরে এনভায়রনমেন্ট ভেরিয়েবল ডিলিট করতে পারেন। এটি os.environ.pop() মেথড ব্যবহার করে করা যায়। চলুন আমাদের AIRTABLE_KEY এনভায়রনমেন্ট ভেরিয়েবল ডিলিট করি:

os.environ.pop("AIRTABLE_KEY")

এই কোডটি AIRTABLE_KEY এনভায়রনমেন্ট ভেরিয়েবলটি রিমুভ করে।

যদি আপনি একাধিক এনভায়রনমেন্ট ভেরিয়েবল ক্লিয়ার করতে চান তবে এটি অপ্র্যাক্টিক্যাল। যদি আপনি একটি প্রজেক্টের নতুন ইনস্ট্যান্স শুরু করেন, বা আপনার সেশনে সব এনভায়রনমেন্ট ভেরিয়েবল রিসেট করতে চান, তবে আপনার ডজেন্স ভ্যালু ওভাররাইড করতে হতে পারে।

সেইসঙ্গে clear() মেথডটি কাজে আসে। চলুন আমাদের সেশনে সব এনভায়রনমেন্ট ভেরিয়েবল রিমুভ করি:

os.environ.clear()
print(os.environ) 

এই কোডটি সব এনভায়রনমেন্ট ভেরিয়েবলের মান ক্লিয়ার করে। তারপর, এটি আমাদের সেশনে সব এনভায়রনমেন্ট ভেরিয়েবলের একটি লিস্ট প্রিন্ট করে:

{}

পাইথন কিছু ডিফল্ট এনভায়রনমেন্ট ভেরিয়েবল সেট করে থাকে যা আপনার প্রজেক্টের জন্য দরকার হতে পারে।

আপনাকে শুধু clear() মেথড ব্যবহার করা উচিত যদি আপনি নিশ্চিত হন যে আপনার প্রোগ্রামে আর কোনো এনভায়রনমেন্ট ভেরিয়েবল দরকার নেই। pop() মেথড প্রিয় কারণ এটি আরও স্পেসিফিক।

Dotenv ব্যবহার করে এনভায়রনমেন্ট ভেরিয়েবল সেট করার পদ্ধতি

dotenv লাইব্রেরি এনভায়রনমেন্ট ভেরিয়েবল ম্যানেজ করার জন্য অনেক উপযোগী ফাংশন প্রদান করে।

উল্লেখযোগ্যভাবে, dotenv আপনাকে একটি ফাইল থেকে এনভায়রনমেন্ট ভেরিয়েবল পড়তে দেয়। এর মানে আপনাকে সেগুলো পাইথন শেলের ভিতরে ডিক্লেয়ার করতে হয় না।

একটি মডিউল ফাইল থেকে এনভায়রনমেন্ট ভেরিয়েবল পড়া বেশি সুবিধাজনক যদি আপনার পড়ার জন্য অনেক ভ্যালু থাকে। এছাড়া এটি ভেরিয়েবল ম্যানেজ করা সহজ করে দেয় যদি আপনাকে তাদের মান চেঞ্জ করতে হয়।

dotenv প্যাকেজের সাথে কাজ করতে, আপনাকে এটি ইনস্টল করতে হবে। আপনি এটি easy_install বা pip ব্যবহার করে করতে পারেন।

চলুন একটি এনভায়রনমেন্ট ভেরিয়েবল ডিফাইন করে শুরু করি। এটি করার জন্য, আমরা .env নামে একটি ফাইল তৈরি করব। আমরা কমান্ড লাইন থেকে touch কমান্ড ব্যবহার করে এই ফাইলটি তৈরি করতে পারি:

touch .env

আপনার .env ফাইলটি খুলুন এবং নিচের কন্টেন্ট যোগ করুন:

AIRTABLE_KEY=YOUR_API_KEY_3

এনভায়রনমেন্ট ভেরিয়েবল যেকোনো অন্য ভেরিয়েবলের মতো অ্যাসাইন করা হয়। ইকুয়ালস সাইনের বাম দিকে আপনার ভেরিয়েবলের নাম থাকে। ডান দিকে, আপনি যে মানটি ভেরিয়েবলটি স্টোর করবে। এই দুটি মান ইকুয়ালস সাইন দ্বারা আলাদা থাকে।

পরবর্তীতে, আমরা আমাদের ভেরিয়েবলগুলো একটি ফাইলে লোড করব:

from dotenv import load_dotenv
load_dotenv() 

এই কোডটি dotenv লাইব্রেরি থেকে load_dotenv() মেথড ইম্পোর্ট করে এবং এক্সিকিউট করে। এটি আমাদের .env ফাইলের সব ভেরিয়েবল আমাদের এনভায়রনমেন্টে পড়ে।

পরবর্তীতে, চলুন os লাইব্রেরি ব্যবহার করে আমাদের ভেরিয়েবল রিট্রিভ করার চেষ্টা করি:

import os
api_key = os.environ.get("AIRTABLE_KEY")
print(api_key) 

আমাদের কোড রিটার্ন করে: YOUR_API_KEY_3। আমাদের API কী আমাদের .env ফাইলের ভিতরে সেট করা ছিল। load_dotenv() মেথড আমাদের এনভায়রনমেন্ট ভেরিয়েবল লোড করেছিল এবং সেগুলো os.environ মেথড ব্যবহার করে অ্যাক্সেসযোগ্য করেছিল।

উপসংহার

এনভায়রনমেন্ট ভেরিয়েবল হল প্রিডিফাইন্ড মানগুলো যা একটি প্রোগ্রামের বাইরে থেকে একটি মান কনফিগার করতে ব্যবহৃত হয়। সেগুলো সাধারণত আলাদা এনভায়রনমেন্ট সেট আপ করতে ব্যবহৃত হয়, তাই তাদের নাম। 

এনভায়রনমেন্ট ভেরিয়েবল গোপন মান সেট করার একটি সিকিউর উপায়। আপনি সরাসরি আপনার অ্যাপ্লিকেশন কোডে একটি API কী অ্যাড করতে চাবেন না কারণ এটি আপনার অ্যাপ্লিকেশন দেখার সবার কাছে পঠনযোগ্য হবে। আপনি এটিকে একটি এনভায়রনমেন্ট ভেরিয়েবলে সেট করতে পারেন যাতে শুধু আপনি এবং আপনার প্রোগ্রাম মানটি দেখতে পায়।

এখন আপনি পাইথন কোডে এনভায়রনমেন্ট ভেরিয়েবলের সাথে প্রফেশনালের মতো কাজ করার জন্য রেডি!

  1. উইন্ডোজ ১০-এ এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করার পূর্ণাঙ্গ গাইড

  2. Tkinter Python-এ Thread ব্যবহার করার পদ্ধতি

  3. রুবিতে এনভায়রনমেন্ট ভেরিয়েবল মাস্টার করুন: একটি প্র্যাকটিক্যাল গাইড

  4. Windows 10 এনভায়রনমেন্ট ভেরিয়েবল সেট করুন: ধাপে ধাপে গাইড