এই পর্বে যা শিখবেন
- Windows, Mac, Linux — যেকোনো যন্ত্রে Python ইনস্টল করা, আর সঙ্গে সঙ্গে যাচাই করা
- REPL-এ সরাসরি Python-এর সাথে “কথা বলা”, আর কখন REPL নয়, ফাইল দরকার
- VS Code-এ সঠিক interpreter বেছে নিয়ে ফাইল চালানো
python hello.pyলিখে Enter চাপলে ভেতরে ধাপে ধাপে কী ঘটে- “python is not recognized” থেকে শুরু করে সাধারণ সেটআপ-সমস্যার নিজে নিজে সমাধান
১ · Python চালাতে তিনটি আলাদা জিনিস লাগে
সুমাইয়া প্রথমবার Python শিখতে বসেছেন। ইউটিউবে দেখলেন কেউ VS Code খুলে কোড লিখে একটি বোতাম চাপছেন, আর নিচে উত্তর চলে আসছে। তিনি VS Code ইনস্টল করলেন, কোড লিখলেন, বোতাম চাপলেন — কিছুই হলো না। নিচে একটি লাল লেখা এলো: Python খুঁজে পাওয়া যাচ্ছে না। অথচ তিনি তো “Python-এর editor” ইনস্টল করেছেন!
সুমাইয়ার ভুলটি খুব স্বাভাবিক, আর এই পর্বের মূল শিক্ষাও এখান থেকেই। নিজের কম্পিউটারে Python চালাতে তিনটি আলাদা জিনিস লাগে। এরা একসাথে কাজ করে, কিন্তু প্রত্যেকের কাজ আলাদা।
তিনটি টুল, তিনটি কাজ
Editor writes, terminal asks, interpreter runs
- Editor
hello.pyকোড লেখা ও সেভ করা - Terminal
python hello.pyচালানোর নির্দেশ দেওয়া - Interpreter
python.exeকোড পড়ে চালানো
Interpreter
একটি প্রোগ্রাম, যা আপনার Python কোড পড়ে এবং লাইন ধরে চালায়। python.org থেকে যে “Python” নামাবেন, সেটি আসলে এই interpreter — এর পুরো নাম CPython, কারণ এটি নিজে C ভাষায় লেখা।
python.exe, python3Editor বা IDE
কোড লেখার খাতা। লেখা রঙিন করে, ভুলের নিচে দাগ দেয়, পরামর্শ দেয়। নিজে কোড চালায় না — ভেতরে interpreter-কে ডেকে আনে।
VS Code, PyCharm, IDLE, ThonnyTerminal
লেখা কমান্ড দিয়ে কম্পিউটারকে নির্দেশ দেওয়ার জানালা। এর ভেতরে যে প্রোগ্রামটি কমান্ড বোঝে, তাকে বলে shell.
PowerShell, Command Prompt, Terminal.app, bashএকটি রেস্টুরেন্টের কথা ভাবুন। আপনি মেনু-কার্ডে অর্ডার লিখলেন (editor), ওয়েটার সেই কাগজ রান্নাঘরে পৌঁছে দিলেন (terminal), আর বাবুর্চি রান্না করলেন (interpreter). সুন্দর মেনু-কার্ড থাকলেও রান্নাঘরে বাবুর্চি না থাকলে খাবার আসবে না। সুমাইয়ার কম্পিউটারে মেনু-কার্ড ছিল, বাবুর্চি ছিল না — অর্থাৎ VS Code ছিল, Python interpreter ছিল না।
VS Code ইনস্টল করা মানে Python ইনস্টল করা নয়। আগে interpreter ইনস্টল করুন এবং terminal থেকে যাচাই করুন যে সেটি চলছে। তারপর editor সাজান। কোনো সমস্যা হলে প্রথম প্রশ্ন: “তিনটির মধ্যে কোনটি কাজ করছে না?”
C-তে আপনি আগে gcc দিয়ে compile করে একটি executable বানাতেন, তারপর সেটি চালাতেন। Python-এ আলাদা build ধাপ নেই — interpreter সরাসরি .py ফাইল নিয়ে চালায় (ভেতরে একটি অনুবাদ ঘটে, সেটি পর্ব ০৫-এ দেখবেন)। তবে একটি জিনিস হুবহু এক: “gcc is not recognized” আর “python is not recognized” একই PATH-সমস্যা। C-র toolchain মনে করতে চাইলে C কোর্সের টুলচেইন পর্ব দেখুন।
২ · Python ইনস্টল — আপনার যন্ত্র অনুযায়ী
শুরুতেই একটি সুখবর: এই কোর্সের কোড-ব্লকগুলো পাতার ভেতরেই চালানো যায়, তাই আজই কিছু ইনস্টল না করলেও শেখা থামবে না। তবে নিজের কম্পিউটারে Python থাকলে আসল প্রোগ্রামারের মতো ফাইল বানাতে, সেভ করতে আর বারবার চালাতে পারবেন। আপনার যন্ত্রের ট্যাবটি বেছে নিন:
- python.org/downloads খুলুন। সাইট নিজেই Windows-এর জন্য সর্বশেষ স্থিতিশীল (stable) version দেখাবে।
- Installer চালানোর পর প্রথম পর্দার নিচে “Add python.exe to PATH” ঘরে টিক দিন। এই একটি টিক বাদ পড়াই নতুনদের সবচেয়ে বড় ঝামেলার উৎস।
- Install Now চাপুন। শেষ হলে নতুন একটি terminal (PowerShell) খুলে যাচাই করুন।
python --version
py --versionদুটির যেকোনো একটি থেকে Python 3.x.y ধরনের উত্তর এলেই কাজ শেষ। দ্বিতীয় কমান্ডের py হলো py launcher — Windows-এ Python-এর সাথে আসা ছোট একটি সহকারী প্রোগ্রাম। PATH-এ টিক দিতে ভুলে গেলেও সাধারণত py কাজ করে।
২০২৫ সাল থেকে python.org Windows-এর জন্য একটি নতুন “Python install manager”-ও দিচ্ছে, যেটিও py কমান্ড দিয়ে চলে। পুরোনো ধাঁচের installer আর নতুনটি — যেটিই নিন, শেষে py --version কাজ করলেই হলো।
Mac-এ দুটি ভালো পথ আছে:
- python.org installer — সাইট থেকে macOS-এর
.pkgফাইল নামিয়ে সাধারণ সফটওয়্যারের মতো ইনস্টল করুন। - Homebrew — যদি আগে থেকেই Homebrew ব্যবহার করেন, terminal-এ নিচের লাইনটি দিন।
brew install python
python3 --versionসতর্কতা: Mac-এ /usr/bin/python3 নামে একটি Python আগে থেকেই থাকতে পারে, যা Apple-এর developer tools-এর সাথে আসে। এটি সিস্টেমের নিজের কাজের জন্য, প্রায়ই পুরোনো version. শেখার জন্য নিজের ইনস্টল করা Python ব্যবহার করুন, আর সিস্টেমের Python-এ কিছু ইনস্টল করবেন না। Mac-এ কমান্ডটি সাধারণত python3, শুধু python নয়।
প্রায় সব Linux distribution-এ Python 3 আগে থেকেই থাকে, কারণ সিস্টেমের নিজের অনেক টুল Python-এ লেখা। আগে যাচাই করুন:
python3 --version
sudo apt update
sudo apt install python3 python3-venv python3-pipশেষ দুটি লাইন Ubuntu বা Debian-এর জন্য, শুধু তখনই দরকার যখন কিছু অনুপস্থিত। Ubuntu-তে python কমান্ড (৩ ছাড়া) অনেক সময় থাকেই না — তাই সবসময় python3 লিখুন। সিস্টেমের Python মুছে ফেলবেন না; তাতে OS-এর অংশ ভেঙে যেতে পারে।
ল্যাপটপ না থাকলে, বা সাময়িকভাবে অন্যের কম্পিউটারে থাকলে, অস্থায়ী সমাধান হিসেবে:
- এই কোর্সের কোড-ব্লক — “চালান” চাপলে কোড অনলাইন সার্ভারে Python-এ চলে, ফল পাতাতেই আসে।
- Google Colab — Google অ্যাকাউন্ট দিয়ে ব্রাউজারে notebook চালানো যায়, অনেক লাইব্রেরি আগে থেকেই থাকে। বিনামূল্যের সংস্করণে সময় ও ক্ষমতার সীমা আছে, আর ইন্টারনেট লাগে।
- Android অ্যাপ — Pydroid 3-এর মতো অ্যাপে ফোনেই ছোট প্রোগ্রাম চালানো যায়।
এগুলো শেখা শুরু করার জন্য চমৎকার। কিন্তু ফাইল, ফোল্ডার, terminal আর প্রজেক্ট গোছানো শিখতে শেষ পর্যন্ত একটি কম্পিউটার দরকার হবে।
বাস্তব উদাহরণ: অ্যাডমিন অধিকার ছাড়া ল্যাবের কম্পিউটার
রাকিব একটি কোচিং সেন্টারের শেয়ার করা ল্যাবে বসেন। সেখানে সফটওয়্যার ইনস্টল করতে admin অধিকার লাগে, যা তাঁর নেই। তাঁর সামনে কয়েকটি বৈধ পথ:
- শুধু নিজের অ্যাকাউন্টে ইনস্টল: python.org-এর Windows installer-এ “Install for all users” টিক না দিলে Python আপনার নিজের ব্যবহারকারী-ফোল্ডারে বসে। এতে সাধারণত admin অধিকার লাগে না।
- Thonny: নতুনদের জন্য তৈরি এই editor-এর ভেতরেই Python থাকে, আলাদা করে ইনস্টল করতে হয় না।
- ব্রাউজার: কিছুই ইনস্টল করা না গেলে এই কোর্সের কোড-ব্লক বা Colab.
- আগে জিজ্ঞেস করুন: ল্যাবের নিয়ম ভেঙে কিছু করবেন না। দায়িত্বপ্রাপ্ত মানুষটিকে বললে অনেক সময় তিনিই সব কম্পিউটারে Python বসিয়ে দেন।
“Python download free” লিখে খুঁজে প্রথম যে সাইট আসে, সেখান থেকে নামাবেন না। ভুয়া সাইটে installer-এর সাথে ক্ষতিকর সফটওয়্যার থাকতে পারে। শুধু python.org, আপনার OS-এর নিজস্ব store বা package manager (Homebrew, apt) — এই উৎসগুলো ব্যবহার করুন।
৩ · Version যাচাই — আর কেন কমান্ড একেক OS-এ একেক রকম
ইনস্টলের পর প্রথম কাজ হলো নিশ্চিত হওয়া যে terminal Python খুঁজে পাচ্ছে, আর কোন version পাচ্ছে। তিনটি OS-এ কমান্ড তিন রকম হতে পারে:
| OS | সবচেয়ে নির্ভরযোগ্য কমান্ড | কারণ |
|---|---|---|
| Windows | py --version (অথবা python --version) | py launcher সব ইনস্টল করা version চেনে; python নির্ভর করে PATH-এর ওপর |
| macOS | python3 --version | অনেক বছর python নামটি Python 2-এর জন্য রাখা ছিল, তাই Python 3 এসেছে python3 নামে |
| Linux | python3 --version | একই ঐতিহাসিক কারণ; অনেক distribution-এ শুধু python নামে কিছুই থাকে না |
কেন এই বিভ্রান্তি? Python 2 আর Python 3 পরস্পরের সাথে পুরোপুরি মেলে না। ২০০৮ সালে Python 3 আসার পরও বহু বছর দুটি পাশাপাশি চলেছে, আর Python 2-এর সমর্থন শেষ হয় ২০২০ সালের ১ জানুয়ারি। Mac আর Linux-এর পুরোনো টুলগুলো python বললে Python 2 বুঝত, তাই তাদের ভাঙা এড়াতে নতুনটির নাম রাখা হলো python3. এই কোর্সে যখন python লিখব, আপনার যন্ত্রে সেটি py বা python3 হতে পারে — নিজের যন্ত্রের কমান্ডটি বসিয়ে নেবেন।
বাস্তব উদাহরণ: এক ল্যাপটপে দুটি Python
তানভীরের Windows ল্যাপটপে একবার Microsoft Store থেকে Python 3.11 ইনস্টল হয়েছিল, পরে তিনি python.org থেকে 3.13 বসিয়েছেন। এখন python --version বলে 3.11, অথচ VS Code বলে 3.13 — আর একটিতে ইনস্টল করা লাইব্রেরি অন্যটিতে পাওয়া যায় না। প্রথম কাজ হলো দেখা, কম্পিউটারে আসলে কয়টি Python আছে আর কোনটি কোথায়:
py -0p # Windows: py launcher যত Python চেনে, পথসহ তালিকা
where.exe python # Windows: PATH-এ "python" নামে যা যা পাওয়া যায়, ক্রমানুসারে
which -a python3 # Mac / Linux: একই কাজ
py -3.13 hello.py # Windows: নির্দিষ্ট version দিয়ে চালানোwhere python-এর তালিকায় যেটি সবার ওপরে, terminal সেটিই চালায়। দুটি Python থাকা নিজে কোনো দোষ নয় — পেশাদারদের কম্পিউটারে প্রায়ই কয়েকটি থাকে। সমস্যা হয় তখনই, যখন আপনি জানেন না কোনটি চলছে। অভ্যাস করুন: নতুন কোনো সমস্যায় আগে জিজ্ঞেস করুন, “এই মুহূর্তে কোন Python চলছে?”
প্রোগ্রামের ভেতর থেকেও এই প্রশ্নের উত্তর জানা যায়। নিচের কোডটি চালিয়ে দেখুন — এটি সঠিক version-এর হুবহু নম্বর না দেখিয়ে কয়েকটি যাচাইয়ের ফল দেখায়, যা যেকোনো আধুনিক Python-এ একই আসবে:
import sys
import platform
# কোন Python চলছে — কয়েকটি যাচাই
print("Implementation:", platform.python_implementation())
print("Python 3?", sys.version_info.major == 3)
print("3.10 বা নতুন?", sys.version_info >= (3, 10))
print("ডিফল্ট encoding:", sys.getdefaultencoding())
word = "বাংলা"
print(word, "->", len(word), "code point")sys.version_info হলো চলমান Python-এর version, যা (3, 10)-এর মতো সংখ্যার জোড়ার সাথে তুলনা করা যায়। ফলাফল আসবে CPython, True, True আর utf-8. শেষ লাইনে বাংলা শব্দটি ঠিকঠাক ছাপা হবে এবং দৈর্ঘ্য দেখাবে 5 — ব, া, ং, ল, া মিলিয়ে পাঁচটি Unicode অক্ষর। অনেক লাইব্রেরি শুরুতেই এভাবে version যাচাই করে, যাতে খুব পুরোনো Python-এ চালালে পরিষ্কার বার্তা দিতে পারে।
৪ · REPL — Python-এর সাথে সরাসরি কথা বলা
Terminal-এ শুধু python (বা py, python3) লিখে Enter চাপুন, কোনো ফাইলের নাম ছাড়া। কয়েক লাইনের পরিচয়ের পর দেখবেন তিনটি তীরচিহ্ন: >>>. এটি REPL — Read, Eval, Print, Loop. অর্থাৎ Python আপনার লেখা একটি লাইন পড়ে, হিসাব করে, ফল ছাপে, তারপর আবার পরের লাইনের জন্য অপেক্ষা করে। একে interactive mode-ও বলে।
REPL হলো চায়ের দোকানে মুখে মুখে হিসাব। “দুই কাপ চা, একটা বিস্কুট — কত হলো?” দোকানদার সঙ্গে সঙ্গে বলে দেন। কিন্তু মাসের পুরো হিসাব তিনি খাতায় লেখেন, যাতে কাল আবার দেখা যায়। REPL মুখের হিসাব; .py ফাইল হলো হিসাবের খাতা।
নিচের ডায়াগ্রামে একটি ছোট REPL সেশন ধাপে ধাপে দেখুন। ডান পাশে খেয়াল করুন _ নামের বিশেষ ভ্যারিয়েবলটি কীভাবে বদলায়:
1>>> 2 + 32>>> _ * 103>>> price = 1204>>> price * 35>>> exit()
| _ | |
| price |
- REPL খুলল। Terminal-এ শুধু
pythonলেখা হয়েছে, কোনো ফাইলের নাম নেই। তাই Python interactive mode-এ ঢুকে প্রথমে version-এর পরিচয় দেখায়, তারপর>>>প্রম্পট দিয়ে অপেক্ষা করে। - Read — পড়া। আপনি
2 + 3লিখে Enter চাপলেন। Python পুরো লাইনটি পড়ে বুঝে নিল এটি একটি হিসাব (expression). - Eval ও Print. হিসাব হলো, ফল 5 নিজে থেকেই ছাপা হলো —
print()লিখতে হয়নি। একই সাথে Python ফলটি_নামে মনে রাখল। তারপর Loop: আবার>>>. _মানে “শেষ ফল”।_ * 10লিখলে আগের 5-কে ১০ দিয়ে গুণ করা হলো — 50. ক্যালকুলেটরের “Ans” বোতামের মতো। খেয়াল করুন, এই সুবিধা শুধু REPL-এ; স্ক্রিপ্টে_এমন কিছু মনে রাখে না।- Assignment কিছু ছাপে না।
price = 120একটি নির্দেশ — “120-কে price নামে রাখো।” এর নিজের কোনো ফল নেই, তাই কিছুই ছাপা হলো না, আর_-ও আগের 50-ই রইল। - নাম দিয়ে হিসাব।
price * 3= 360. REPL পুরো সেশন জুড়েpriceমনে রেখেছে, আর_এখন 360. - বের হওয়া।
exit()লিখলে REPL বন্ধ হয়, আবার সাধারণ shell-এর প্রম্পট ($বাPS C:\>) ফিরে আসে। সেশনের সব নাম আর মান হারিয়ে গেল — এজন্যই আসল কাজ ফাইলে লিখতে হয়। (Windows-এ Ctrl+Z তারপর Enter, Mac/Linux-এ Ctrl+D চাপলেও বের হওয়া যায়।)
Python 3.13 থেকে REPL অনেক উন্নত হয়েছে: একাধিক লাইনের কোড একসাথে সম্পাদনা করা যায়, আগের লাইন ফিরিয়ে আনা সহজ, আর exit লিখলেই (বন্ধনী ছাড়া) বের হওয়া যায়। Python 3.14-এ REPL লেখাকে রঙিনও করে। পুরোনো version-এ এসব না থাকলেও মূল কাজ একই।
REPL-এ যা লিখলে দেখায়, স্ক্রিপ্টে তা দেখায় না
নতুনদের একটি সাধারণ বিভ্রান্তি: REPL-এ 2 + 3 লিখলে 5 আসে, কিন্তু একই লাইন ফাইলে লিখে চালালে কিছুই আসে না। কারণ “Print” ধাপটি শুধু REPL-এর বৈশিষ্ট্য। স্ক্রিপ্টে কিছু দেখাতে চাইলে আপনাকে নিজে print() লিখতে হবে। চালিয়ে দেখুন:
# স্ক্রিপ্টে print() ছাড়া কোনো ফল দেখা যায় না
2 + 3 # হিসাব হলো, কিন্তু কোথাও দেখানো হলো না
price = 120 # এক কেজি আলুর দাম (টাকা) — উদাহরণ
kg = 5
total = price * kg
discount = total * 10 / 100
print("মোট:", total)
print("ছাড়:", discount)
print("দিতে হবে:", total - discount)
print("7 / 2 =", 7 / 2, "| 7 // 2 =", 7 // 2)দ্বিতীয় লাইনের 2 + 3 চলেছে ঠিকই, কিন্তু আউটপুটে তার কোনো চিহ্ন নেই। দেখা যাবে শুধু চারটি print()-এর ফল: মোট: 600, ছাড়: 60.0, দিতে হবে: 540.0 আর 7 / 2 = 3.5 | 7 // 2 = 3. খেয়াল করুন, / দিয়ে ভাগ করলে সবসময় দশমিক সংখ্যা (60.0) আসে, আর // ভাগফলের পূর্ণ অংশ দেয়। সংখ্যার এসব খুঁটিনাটি পর্ব ০৭-এ বিস্তারিত দেখবেন।
| কাজ | REPL | .py ফাইল |
|---|---|---|
| দ্রুত একটি হিসাব, একটি ফাংশন কী করে দেখা | সেরা | অহেতুক ঝামেলা |
| পাঁচ লাইনের বেশি কোড | ভুল হলে পুরোটা আবার লিখতে হয় | সেরা |
| কাল আবার চালানো, কাউকে পাঠানো | সেশন বন্ধ হলেই হারায় | ফাইল থেকে যায় |
| ফল দেখা | নিজে থেকেই ছাপে | print() লাগে |
৫ · VS Code এবং অন্যান্য editor
এই কোর্সে আমরা ধরে নেব আপনি VS Code ব্যবহার করছেন — এটি বিনামূল্যের, Windows, Mac, Linux তিনটিতেই চলে, আর পেশাদার জগতে খুব প্রচলিত। তবে VS Code নিজে শুধু একটি সাধারণ editor; Python-এর জন্য এতে Microsoft-এর অফিসিয়াল Python extension যোগ করতে হয়। Extension যোগ করলে VS Code ভুলের নিচে দাগ দেয়, নামের পরামর্শ দেয়, আর এক ক্লিকে ফাইল চালাতে পারে।
সবচেয়ে গুরুত্বপূর্ণ ধাপটি হলো interpreter বাছাই — VS Code-কে বলে দেওয়া, কম্পিউটারের কোন Python দিয়ে আপনার কোড চালাবে। তানভীরের মতো দুটি Python থাকলে এটিই সবকিছু ঠিক করে দেয়:
- ফোল্ডার খোলা
File → Open Folderপ্রজেক্টের ঘর - Extension
Python (Microsoft)একবারই লাগে - Interpreter বাছাই
Ctrl+Shift+Pকোন Python? - চালানো
Run Python Fileনিচে terminal
python-practice/
└── hello.py ← New File → নাম দিন hello.py
Python Microsoft [Install] সাথে Pylance-ও আসে — কোড বোঝা ও পরামর্শের জন্য
> Python: Select Interpreter Python 3.13.x ~\AppData\Local\Programs\Python\Python313 Python 3.11.x ~\AppData\Local\Microsoft\WindowsApps + Enter interpreter path...
PS C:\python-practice> & C:/.../Python313/python.exe c:/python-practice/hello.py
Hello, Dhaka!
- একটি ফোল্ডার খুলুন। শুধু একটি ফাইল নয়, পুরো ফোল্ডার খুলুন (File → Open Folder). VS Code-এর অনেক সেটিং ফোল্ডার ধরে কাজ করে, আর terminal-ও সেই ফোল্ডারে খোলে। Desktop-এ ছড়ানো ফাইলের চেয়ে একটি নির্দিষ্ট ফোল্ডার অনেক গোছানো।
- Python extension ইনস্টল করুন। Extensions প্যানেলে “Python” খুঁজুন এবং প্রকাশক Microsoft কি না দেখে নিন — একই নামের অন্য extension-ও থাকতে পারে। এটি একবার করলেই সব প্রজেক্টে কাজ করে।
- Interpreter বেছে নিন। Ctrl+Shift+P (Mac-এ Cmd+Shift+P) চেপে “Python: Select Interpreter” লিখুন। তালিকায় কম্পিউটারের সব Python দেখাবে, পথসহ। যেটি আপনি python.org থেকে ইনস্টল করেছেন সেটি বাছুন। নিচের status bar-এ বাছাই করা version দেখা যায় — সেখানে ক্লিক করেও বদলানো যায়।
- চালান। ফাইল খোলা অবস্থায় ওপরের ডান কোণের ▷ (Run Python File) চাপুন। VS Code নিচে integrated terminal খুলে নিজেই বাছাই করা interpreter-এর পুরো পথ দিয়ে কমান্ড লিখে দেয়। অর্থাৎ বোতামটি আসলে আপনার হয়ে terminal-এ কমান্ড টাইপ করছে — কোনো জাদু নেই।
শেষ ধাপের কথাটি মনে রাখুন: Run বোতাম আর terminal-এ নিজে কমান্ড লেখা একই কাজ। তাই বোতাম চাপলে এক ফল আর terminal-এ লিখলে অন্য ফল এলে প্রায় নিশ্চিতভাবে দুই জায়গায় দুটি আলাদা Python চলছে।
VS Code ছাড়া আর কী আছে
🐣 Thonny
একেবারে নতুনদের জন্য তৈরি। Python ভেতরেই থাকে, আর debugger-এ ধাপে ধাপে ভ্যারিয়েবলের মান দেখা খুব সহজ।
থনি — শুরু করার জন্য📝 IDLE
python.org-এর Python-এর সাথেই আসে, আলাদা কিছু নামাতে হয় না। সাদামাটা, কিন্তু REPL আর ফাইল দুটোই চালানো যায়।
Windows-এ Start মেনুতে “IDLE”🧠 PyCharm
JetBrains-এর পূর্ণাঙ্গ IDE — বড় প্রজেক্টে শক্তিশালী refactoring ও debugging. বিনামূল্যে ব্যবহারযোগ্য সংস্করণও আছে, তবে কম্পিউটারে তুলনামূলক বেশি RAM লাগে।
বড় প্রজেক্ট, পেশাদার কাজ📓 Jupyter
কোড, ফল, গ্রাফ আর লেখা এক পাতায় — “notebook”. ডেটা বিশ্লেষণ ও AI-তে খুব প্রচলিত; Colab-ও এক ধরনের Jupyter. ডেটা সায়েন্সের পর্ব ৪৬-এ আবার দেখা হবে।
ডেটা ও পরীক্ষামূলক কাজকোনটিই “সেরা” নয়, কাজ অনুযায়ী বাছাই। আর editor যা-ই হোক, নিচে একই interpreter চলে। এই কোর্সের প্রতিটি কোড যেকোনো editor-এ চলবে।
৬ · Terminal থেকে স্ক্রিপ্ট চালানো
একটি .py ফাইলকে বলে script বা স্ক্রিপ্ট। VS Code-এর বোতাম সুবিধাজনক, কিন্তু terminal থেকে নিজে চালাতে জানা জরুরি — সার্ভারে, অন্যের কম্পিউটারে বা অটোমেশনে কোনো বোতাম থাকে না। মূল কমান্ডটি সহজ:
cd Documents\python-practice # Mac/Linux-এ: cd ~/Documents/python-practice
python hello.pyপ্রথম লাইন cd (change directory) দিয়ে terminal-কে সেই ফোল্ডারে নেওয়া হলো, যেখানে hello.py আছে। Terminal যে ফোল্ডারে “দাঁড়িয়ে” আছে, তাকে বলে working directory বা বর্তমান ফোল্ডার — সাধারণত প্রম্পটেই লেখা থাকে (PS C:\Users\Sumaiya>). এবার দেখা যাক Enter চাপার পর ভেতরে কী কী ঘটে:
- Shell পড়ে
python | hello.pyকমান্ড ভাঙা - PATH-এ খোঁজা
python.exe?ফোল্ডার ধরে ধরে - ফাইল খোলা
.\hello.pyবর্তমান ফোল্ডারে - পড়া ও অনুবাদ
UTF-8 → bytecodeভুল থাকলে এখানেই - চলা ও ফল
Hello, Dhaka!শেষে প্রম্পট ফেরে
PS C:\Users\Sumaiya\python-practice> python hello.py
C:\Windows\system32 ✗ নেই C:\Users\Sumaiya\AppData\Local\Programs\Python\Python313\ ✓ python.exe C:\Users\Sumaiya\AppData\Local\Microsoft\WindowsApps (আর দেখা হলো না)
C:\Users\Sumaiya\python-practice\ └── hello.py ← পাওয়া গেল
# hello.py (UTF-8 হিসেবে পড়া হলো) print("Hello, Dhaka!") → syntax ঠিক আছে → bytecode তৈরি
PS C:\Users\Sumaiya\python-practice> python hello.py
Hello, Dhaka!
PS C:\Users\Sumaiya\python-practice>
- Shell কমান্ড ভাঙে। আপনি Enter চাপতেই shell লাইনটিকে শব্দে ভাগ করল। প্রথম শব্দ
python— যে প্রোগ্রামটি চালাতে হবে। বাকিhello.py— সেই প্রোগ্রামকে দেওয়ার তথ্য (argument). Shell নিজে Python জানে না; সে শুধু জানে কাকে ডাকতে হবে। - PATH-এ খোঁজা। “python” নামের প্রোগ্রাম কোথায়? Shell একটি ফোল্ডারের তালিকা ধরে ক্রমানুসারে খোঁজে — এই তালিকার নাম PATH. প্রথম যে ফোল্ডারে
python.exeপায়, সেটিই চালায়, আর খোঁজা থামায়। কোথাও না পেলে আসে বিখ্যাত “is not recognized” বা “command not found”. দুটি Python থাকলে তালিকায় যেটি আগে, সেটিই জেতে। - Interpreter ফাইল খোলে। এখন
python.exeচালু হয়েhello.pyখুঁজল — বর্তমান ফোল্ডারে। পুরো পথ না দিলে শুধু এখানেই খোঁজা হয়। ভুল ফোল্ডারে দাঁড়িয়ে থাকলে আসেcan't open file ... No such file or directory. - পড়া, যাচাই ও অনুবাদ। Interpreter পুরো ফাইল UTF-8 হিসেবে পড়ে, ব্যাকরণ যাচাই করে, তারপর ভেতরে একটি মধ্যবর্তী রূপে (bytecode) অনুবাদ করে। কোথাও বন্ধনী বা কোলন বাদ পড়লে কোনো লাইন চলার আগেই
SyntaxErrorআসে। এই ধাপটির ভেতরের গল্প পর্ব ০৫-এ। - চলা ও শেষ। লাইনগুলো ক্রমানুসারে চলে,
print()-এর লেখা terminal-এ আসে। ফাইল শেষ হলে interpreter বন্ধ হয়ে যায়, আর shell আবার প্রম্পট দেখায় — পরের কমান্ডের জন্য প্রস্তুত। REPL-এর মতো এখানে কিছু মনে রাখা হয় না।
Interpreter খোঁজে ফাইল → বর্তমান ফোল্ডারে
এই দুটি খোঁজা আলাদা — আর সেটাই দুই ধরনের error-এর উৎস। “python is not recognized” মানে প্রথম খোঁজা ব্যর্থ (PATH). “can't open file” মানে প্রথমটি সফল, দ্বিতীয়টি ব্যর্থ (ফোল্ডার বা নাম)। কয়েকটি দরকারি shell কমান্ড চিনে রাখুন:
| কাজ | Windows (PowerShell) | Mac / Linux |
|---|---|---|
| এখন কোন ফোল্ডারে আছি | pwd (Command Prompt-এ শুধু cd) | pwd |
| এই ফোল্ডারে কী কী ফাইল | dir বা ls | ls |
| অন্য ফোল্ডারে যাওয়া | cd python-practice | cd python-practice |
| এক ধাপ ওপরে ফেরা | cd .. | cd .. |
| আগের কমান্ড ফিরিয়ে আনা | ↑ (ওপরের তীর) | ↑ (ওপরের তীর) |
ফোল্ডারের নামে স্পেস থাকলে (যেমন My Code) পুরো নাম উদ্ধৃতিচিহ্নে দিন: cd "My Code". ফোল্ডার আর ফাইলের নাম ইংরেজিতে, স্পেস ছাড়া রাখা সবচেয়ে নিরাপদ অভ্যাস।
৭ · সাধারণ সেটআপ-সমস্যা ও তার সমাধান
সেটআপে আটকে যাওয়া লজ্জার কিছু নয় — অভিজ্ঞ প্রোগ্রামাররাও নতুন কম্পিউটারে এসব সমস্যায় পড়েন। পার্থক্য হলো তাঁরা error পড়ে বুঝে নেন কোন ধাপে আটকেছে। সবচেয়ে পরিচিত সমস্যাটি দিয়ে শুরু করি:
'python' is not recognized as an internal or external command,
operable program or batch file.
PowerShell-এ একই কথা একটু ভিন্নভাবে আসে (The term 'python' is not recognized...), আর Mac/Linux-এ command not found: python. নিচের ধাপগুলো ক্রমানুসারে চেষ্টা করুন:
- নতুন terminal?
বন্ধ করে খুলুনসবচেয়ে সহজ কারণ - py চলে?
py --versionPython আছে কি না - Store alias?
App execution aliasesনকল python - PATH ঠিক করা
Modify → Add to PATHinstaller দিয়েই - যাচাই
where pythonনতুন terminal-এ
ইনস্টলের আগে খোলা terminal → PATH-এর পুরোনো কপি সব terminal ও VS Code বন্ধ করে আবার খুলুন
PS> py --version Python 3.13.x ← আছে; সমস্যা শুধু PATH-এ PS> py --version py : The term 'py' is not recognized... ← সম্ভবত ইনস্টলই হয়নি
Python was not found; run without arguments to install from
the Microsoft Store, or disable this shortcut from Settings >
... > App execution aliases.
Optional Features → Next
Advanced Options:
[✓] Add Python to environment variables
[Install]
PS> where.exe python C:\Users\...\Programs\Python\Python313\python.exe C:\Users\...\Microsoft\WindowsApps\python.exe PS> python --version Python 3.13.x
- আগে terminal নতুন করে খুলুন। ইনস্টলের আগে খোলা terminal আর VS Code পুরোনো PATH মনে রাখে। সব বন্ধ করে আবার খুলে চেষ্টা করুন — অনেক সময় এতেই সমাধান। (কখনো কখনো কম্পিউটার রিস্টার্টও লাগে।)
py --versionচেষ্টা করুন। এটি চললে Python ইনস্টল আছে, শুধু PATH-এ যোগ হয়নি। তাড়া থাকলে আপাততpy hello.pyলিখেই কাজ চালাতে পারেন।py-ও না চললে সম্ভবত ইনস্টলই সম্পূর্ণ হয়নি — আবার ইনস্টল করুন।- Microsoft Store-এর alias যাচাই করুন। Windows 10 ও 11-এ
pythonনামে একটি ছোট “শর্টকাট” থাকে, যা আসল Python না থাকলে Store খুলে দেয় বা ওপরের বার্তা দেখায়। এটি PATH-এ আসল Python-এর আগে বসে থাকলে বিভ্রান্তি হয়। Settings → Apps → Advanced app settings → App execution aliases-এ গিয়েpython.exeআরpython3.exeবন্ধ করে দিতে পারেন। - PATH ঠিক করুন — installer দিয়েই। Environment variable হাতে সম্পাদনা করা যায়, কিন্তু একটি ভুল অক্ষরে অন্য সফটওয়্যারও ভাঙতে পারে। নিরাপদ পথ: Settings → Apps-এ Python খুঁজে Modify চাপুন, Advanced Options-এ “Add Python to environment variables” টিক দিন। অথবা পুরোনোটি সরিয়ে নতুন করে ইনস্টল করুন, এবার PATH-এর টিক দিয়ে।
- নতুন terminal-এ যাচাই করুন।
where.exe python(PowerShell-এwhereএকটি ভিন্ন কমান্ড, তাই.exeলিখুন) তালিকার প্রথম লাইনে আসল Python-এর পথ দেখাবে। এবারpython --versionচলবে। Mac/Linux-এ একই যাচাইwhich python3দিয়ে।
আরও কয়েকটি পরিচিত সমস্যা
| যা দেখছেন | আসল কারণ | সমাধান |
|---|---|---|
can't open file 'hello.py': [Errno 2] No such file or directory | Terminal ভুল ফোল্ডারে, বা নামের বানান ভুল | pwd আর dir/ls দিয়ে দেখুন; cd দিয়ে সঠিক ফোল্ডারে যান |
| ফাইল আছে, তবু খুঁজে পাচ্ছে না | Notepad ফাইলটি hello.py.txt নামে সেভ করেছে; Windows extension লুকিয়ে রাখে | File Explorer → View → “File name extensions” চালু করুন; নাম ঠিক করুন |
ModuleNotFoundError, অথচ লাইব্রেরি “ইনস্টল করেছি” | লাইব্রেরি একটি Python-এ বসেছে, কোড চলছে অন্যটিতে | VS Code-এ interpreter যাচাই; ইনস্টলে python -m pip ব্যবহার (অংশ ৮) |
| VS Code-এর ▷ এক ফল দেয়, terminal আরেক | দুই জায়গায় দুটি ভিন্ন interpreter | Status bar-এ version দেখুন; “Python: Select Interpreter” |
বাংলা লেখা ছাপতে গিয়ে UnicodeEncodeError বা ভাঙা অক্ষর | আউটপুট যাচ্ছে পুরোনো encoding-এর কোনো জায়গায় (যেমন ফাইলে redirect) | নিচের encoding অংশ দেখুন |
Linux-এ pip install দিলে externally-managed-environment | OS নিজের Python-কে রক্ষা করছে | Virtual environment ব্যবহার করুন (অংশ ৮) |
বাংলা লেখা, UTF-8 আর ফাইলের encoding
কম্পিউটার আসলে অক্ষর রাখে না, রাখে সংখ্যা। কোন অক্ষর কোন সংখ্যা হয়ে জমা থাকবে, সেই নিয়মকে বলে encoding. বাংলা, ইংরেজি, আরবি, ইমোজি — পৃথিবীর প্রায় সব লেখা ধরতে পারে এমন সবচেয়ে প্রচলিত encoding হলো UTF-8.
- সোর্স ফাইল: Python 3-এ
.pyফাইল ডিফল্টভাবে UTF-8 হিসেবে পড়া হয় (PEP 3120). তাই কোডের ভেতরেprint("শুভ সকাল")বা বাংলায় comment লিখতে বাড়তি কিছু লাগে না। ফাইলের শুরুতে পুরোনো টিউটোরিয়ালের মতো# -*- coding: utf-8 -*-লেখার দরকার নেই। - Editor: VS Code ডিফল্টভাবে UTF-8-এ সেভ করে — নিচের status bar-এ “UTF-8” লেখা দেখবেন। খুব পুরোনো editor অন্য encoding-এ সেভ করলে Python বলবে
SyntaxError: Non-UTF-8 code starting with .... সমাধান: ফাইলটি UTF-8-এ আবার সেভ করা। - ফাইল পড়া-লেখা: প্রোগ্রাম থেকে কোনো টেক্সট ফাইল খুললে Windows-এ Python 3.14 পর্যন্ত ডিফল্ট encoding UTF-8 না হয়ে কম্পিউটারের আঞ্চলিক encoding হতে পারে (PEP 686 অনুযায়ী UTF-8 ডিফল্ট হচ্ছে 3.15 থেকে)। তাই অভ্যাস করুন সবসময়
encoding="utf-8"স্পষ্ট করে লেখা — পর্ব ২৫-এ দেখবেন। - Terminal-এ ভাঙা বাংলা: বাংলা অক্ষর বাক্স (□) হয়ে দেখালে সাধারণত Python-এর দোষ নয়, terminal-এর font-এর। Windows Terminal ও VS Code-এর terminal সাধারণত বাংলা ঠিকঠাক দেখায়। আউটপুট ফাইলে পাঠাতে গিয়ে
UnicodeEncodeErrorএলেpython -X utf8 hello.pyদিয়ে চালিয়ে দেখুন।
৮ · এক ঝলকে: pip, virtual environment আর Python আপডেট
Python-এর সাথে আসে বিশাল একটি standard library, কিন্তু বাইরের লাখো package (যেমন ডেটার জন্য pandas, ওয়েবের জন্য FastAPI) আলাদা করে ইনস্টল করতে হয়। এই কাজের টুলটির নাম pip. আজ শুধু দুটি অভ্যাস মনে রাখুন; পুরো গল্প পর্ব ২৩-এ।
python -m pip --version # কোন Python-এর pip, সেটাও দেখায়
python -m pip install requests # শুধু উদাহরণ — এখনই ইনস্টল করার দরকার নেইঅভ্যাস ১ — python -m pip লিখুন, শুধু pip নয়। -m pip মানে “এই Python-এর ভেতরের pip চালাও।” তানভীরের মতো দুটি Python থাকলে শুধু pip লিখলে লাইব্রেরি কোনটিতে যাবে, নিশ্চিত নয়। python -m pip লিখলে যে Python চালাবেন, লাইব্রেরি ঠিক সেটিতেই যাবে। Windows-এ একই কাজ py -m pip.
অভ্যাস ২ — প্রতিটি প্রজেক্টের আলাদা ঘর। ধরুন একটি পুরোনো প্রজেক্টের জন্য একটি লাইব্রেরির পুরোনো version লাগে, আর নতুন প্রজেক্টে নতুন version. সবকিছু একই Python-এ ইনস্টল করলে একটি ঠিক করতে গিয়ে অন্যটি ভাঙবে। সমাধান virtual environment — প্রতিটি প্রজেক্টের জন্য আলাদা একটি ছোট “Python-ঘর”, যার লাইব্রেরি অন্য ঘরে ঢোকে না।
একটি মেসবাড়ির কথা ভাবুন। সবাই এক রান্নাঘর ভাগ করলে একজনের মরিচের গুঁড়া অন্যজনের তরকারিতে চলে যায়। প্রত্যেকের নিজের তাক থাকলে কেউ কারও জিনিসে হাত দেয় না। Virtual environment হলো প্রতিটি প্রজেক্টের নিজস্ব তাক।
python -m venv .venv # এই ফোল্ডারে .venv নামে নতুন ঘর তৈরি
.venv\Scripts\activate # Windows: ঘরে ঢোকা
source .venv/bin/activate # Mac / Linux: ঘরে ঢোকাএই কমান্ডগুলো এখন মুখস্থ করার দরকার নেই — পর্ব ২৩-এ ধাপে ধাপে করব। আপাতত শুধু জেনে রাখুন: VS Code ফোল্ডারে .venv দেখলে নিজেই সেটিকে interpreter হিসেবে প্রস্তাব করে। আর Linux-এর externally-managed-environment বার্তার অর্থও এটাই — “সিস্টেমের Python-এ নয়, নিজের ঘরে ইনস্টল করুন।”
Python আপডেট রাখা — কোন version নেবেন
২০২০ সালের Python 3.9 থেকে প্রতি বছর একটি নতুন version প্রকাশ হয়, সাধারণত অক্টোবরে (3.12, 3.13, 3.14 …)। প্রতিটি version প্রায় পাঁচ বছর সমর্থন পায় — প্রথমে বাগ-সংশোধন, পরে শুধু নিরাপত্তা-আপডেট — তারপর তার “জীবন শেষ” (end of life). বাস্তব পরামর্শ:
- নতুন শুরু করলে: python.org যে সর্বশেষ স্থিতিশীল version দেখায়, সেটিই নিন। কোনো লাইব্রেরি নতুন version-এ এখনো না চললে এক ধাপ আগেরটি নিন।
- সমর্থন আছে কি না দেখুন: python.org-এর “Status of Python versions” পাতায় প্রতিটি version-এর শেষ তারিখ লেখা থাকে। সমর্থন শেষ হওয়া version-এ নিরাপত্তা-ত্রুটি আর ঠিক করা হয় না।
- ছোট আপডেট (3.13.1 → 3.13.2): নিরাপদ, শুধু বাগ ঠিক করে — নিয়মিত নিন।
- বড় আপডেট (3.13 → 3.14): নতুন version পুরোনোটির পাশে বসে, পুরোনোটি মুছে দেয় না। Virtual environment-গুলো নতুন করে তৈরি করতে হয়।
- এই কোর্স: কোডগুলো Python 3.10 বা নতুন version ধরে লেখা, আর অনলাইনে চলে Python 3.14-এ।
- REPL-এর পূর্ণরূপ কী? Read–Eval–Print Loop — একটি লাইন পড়ে, হিসাব করে, ফল দেখায়, আবার অপেক্ষা করে।
- Interactive mode আর script mode-এর পার্থক্য? Interactive mode (REPL) প্রতিটি expression-এর ফল নিজে দেখায় ও সেশন শেষে সব ভুলে যায়; script mode পুরো
.pyফাইল চালায়, ফল দেখাতেprint()লাগে। - PATH environment variable কী? ফোল্ডারের একটি তালিকা, যেখানে shell ক্রমানুসারে প্রোগ্রাম খোঁজে।
- Python 3 সোর্স ফাইলের ডিফল্ট encoding কী? UTF-8.
pip-এর বদলেpython -m pipকেন? এতে নিশ্চিত হয় যে লাইব্রেরি ঠিক সেই interpreter-এ ইনস্টল হচ্ছে, যেটি দিয়ে কোড চালাবেন।
৯ · AI-এর যুগে সেটআপ — সহকারী আছে, দায়িত্ব আপনার
VS Code-এ এখন GitHub Copilot-এর মতো AI সহকারী যোগ করা যায়। আপনি লিখতে শুরু করলেই ধূসর রঙে পুরো লাইন বা পুরো ফাংশনের প্রস্তাব আসে, Tab চাপলেই বসে যায়। পাশে চ্যাট খুলে প্রশ্নও করা যায়। এটি সত্যিই কাজের — বিশেষ করে একঘেয়ে কোড লিখতে আর অচেনা error বুঝতে।
কিন্তু শেখার শুরুতে একটি ঝুঁকি আছে: Tab চাপতে চাপতে প্রোগ্রাম তৈরি হয়ে যায়, অথচ আপনি নিজে কিছুই শেখেননি। পরীক্ষার হলে, ইন্টারভিউতে বা সার্ভারের terminal-এ কোনো Tab নেই। নিয়মটি সহজ: যে প্রস্তাবের প্রতিটি অংশ ব্যাখ্যা করতে পারবেন না, সেটি গ্রহণ করবেন না। কোর্সের প্রথম কয়েকটি মডিউলে চাইলে স্বয়ংক্রিয় প্রস্তাব বন্ধ রেখে শুধু চ্যাট ব্যবহার করুন।
সেটআপ নিয়ে AI-এর সাধারণ পুরোনো পরামর্শ
AI মডেল ইন্টারনেটের বহু বছরের লেখা থেকে শেখে, তাই পুরোনো টিউটোরিয়ালের পরামর্শও আত্মবিশ্বাসের সাথে দেয়। এগুলো চিনে রাখুন:
| AI যা বলতে পারে | সমস্যা | আজকের সঠিক পথ |
|---|---|---|
print "Hello" বা Python 2.7 ইনস্টল করতে বলা | Python 2-এর সমর্থন ২০২০ সালে শেষ | সমর্থিত Python 3 version |
sudo pip install ... | সিস্টেমের Python বদলে দিতে পারে; নতুন Linux এটি আটকায় | Virtual environment-এর ভেতরে python -m pip |
শুধু pip install ... | কোন Python-এ যাবে নিশ্চিত নয় | python -m pip install ... |
python setup.py install বা easy_install | বহু আগেই বাতিলের পথে | python -m pip install . (পর্ব ২৩) |
Windows-এ ধরে নেওয়া যে python3 কাজ করবে | Windows-এ সাধারণত python বা py | নিজের OS জানিয়ে প্রশ্ন করা |
| সমর্থন শেষ হওয়া version-এর (যেমন 3.7) নির্দেশনা | নিরাপত্তা-আপডেট নেই, নতুন লাইব্রেরি চলে না | python.org-এর version-স্ট্যাটাস মিলিয়ে নেওয়া |
সেটআপে আটকে গেলে AI-কে প্রশ্ন করার সময় তিনটি জিনিস অবশ্যই দিন: কোন OS, কী কী করেছেন, আর হুবহু কোন error এসেছে। আর বলে দিন যেন প্রতিটি কমান্ডের ব্যাখ্যা দেয়:
AI-এর দেওয়া কোনো সেটআপ-কমান্ড চালানোর আগে — চেকলিস্ট
ভাবনার প্রশ্ন
প্রতিটি প্রশ্ন নিয়ে নিজে কিছুক্ষণ ভাবুন — তারপর “→ উত্তর” চাপুন। এগুলো আপনাকে সেটআপের “কীভাবে” থেকে “কেন”-তে নিয়ে যাবে।
প্র ০১PATH আসলে কী? অপারেটিং সিস্টেম প্রতিবার ফোল্ডারের তালিকা ধরে খোঁজে কেন — সব প্রোগ্রাম এক জায়গায় রাখলেই তো হতো?
PATH হলো একটি environment variable — প্রতিটি চলমান প্রোগ্রামের সাথে থাকা নাম-মানের জোড়ার একটি। এর মান হলো ফোল্ডারের একটি তালিকা, Windows-এ ; দিয়ে আর Mac/Linux-এ : দিয়ে আলাদা করা। আপনি শুধু একটি নাম লিখলে shell এই তালিকার প্রথম ফোল্ডার থেকে শুরু করে একে একে খোঁজে, আর প্রথম মিলেই থামে।
ইতিহাস: শুরুর দিকের Unix shell কয়েকটি নির্দিষ্ট ফোল্ডারে (যেমন /bin) খুঁজত, যা কোডের ভেতরেই লেখা থাকত। ১৯৭৯ সালের Version 7 Unix-এ environment variable আর PATH আসে, ফলে প্রত্যেক ব্যবহারকারী নিজের তালিকা ঠিক করতে পারলেন। ১৯৮৩ সালে MS-DOS 2.0-তে ফোল্ডার (subdirectory) এলে একই সমাধান দরকার হলো — DOS-ও PATH নিল, আর সেখান থেকেই Windows-এ।
সব এক জায়গায় রাখা হয় না কেন? কারণ প্রোগ্রাম আসে নানা উৎস থেকে — OS নিজে, admin-এর ইনস্টল করা সফটওয়্যার, আর ব্যবহারকারীর নিজের ফোল্ডারে বসানো জিনিস (রাকিবের ল্যাবের মতো)। admin অধিকার ছাড়া সিস্টেম ফোল্ডারে লেখা যায় না, কিন্তু নিজের ফোল্ডারকে PATH-এ যোগ করা যায়। তালিকাটি তাই নমনীয়তা দেয়।
ক্রমের গুরুত্ব: তালিকায় যা আগে, সেটাই জেতে। এজন্যই দুটি Python থাকলে কোনটি চলবে তা PATH-এর ক্রমের ওপর নির্ভর করে, আর Microsoft Store-এর alias আসল Python-এর আগে বসে গোলমাল করতে পারে। নিরাপত্তার দিকও আছে: কেউ যদি তালিকার আগের কোনো ফোল্ডারে python.exe নামে ক্ষতিকর প্রোগ্রাম রাখতে পারে, আপনি না জেনেই সেটি চালাবেন। এই কারণেই Mac/Linux-এর shell বর্তমান ফোল্ডারে আপনাআপনি প্রোগ্রাম খোঁজে না — নিজের ফোল্ডারের প্রোগ্রাম চালাতে ./hello লিখতে হয়। Windows-এর পুরোনো Command Prompt বর্তমান ফোল্ডারে আগে খোঁজে, PowerShell খোঁজে না।
মূল উপলব্ধি: “Command not found” মানে প্রোগ্রাম নেই, এমন নয় — মানে shell-এর খোঁজার তালিকায় নেই। তালিকা, ক্রম আর প্রথম মিল — এই তিনটি বুঝলে সেটআপের অর্ধেক রহস্য মিটে যায়।
প্র ০২Windows-এ py launcher নামে আলাদা একটি প্রোগ্রাম কেন লাগল, যখন Mac/Linux-এ এমন কিছু নেই?
সমস্যাটি হলো একাধিক Python পাশাপাশি রাখা। Mac আর Linux-এ প্রতিটি version নিজের নামে আসে — python3.12, python3.13 — আর স্ক্রিপ্টের প্রথম লাইনে #!/usr/bin/env python3 (একে বলে shebang) লিখে দিলে OS নিজেই বোঝে কোন interpreter দিয়ে ফাইলটি চালাতে হবে। এই প্রথা ১৯৮০ সালের আশপাশ থেকে Unix-এ চলে আসছে।
Windows-এ এর কোনোটিই ছিল না। ফাইল চালানো হয় extension দেখে — .py ফাইল একটিমাত্র প্রোগ্রামের সাথে যুক্ত থাকে। ফলে Python 2 আর 3 দুটোই রাখলে, ডাবল-ক্লিকে কোনটি চলবে তা নির্ভর করত কোনটি শেষে ইনস্টল হয়েছে তার ওপর। আর PATH-এ দুটি python.exe থাকলে প্রথমটিই জিতত।
এর সমাধানে ২০১১ সালে PEP 397 প্রস্তাব করা হয়, আর ২০১২ সালে Python 3.3-এর সাথে py.exe যুক্ত হয়। এর কাজ:
- কম্পিউটারে ইনস্টল করা সব Python খুঁজে বের করা (
py -0দিয়ে তালিকা দেখা যায়)। py -3.12লিখে নির্দিষ্ট version বেছে নেওয়া — PATH-এর ক্রম যা-ই হোক।- স্ক্রিপ্টের shebang লাইন পড়ে বোঝা কোন version চাই — অর্থাৎ Unix-এর প্রথাটি Windows-এ নিয়ে আসা।
- নিজে Windows ফোল্ডারে বা ব্যবহারকারীর ফোল্ডারে বসা, যাতে PATH-এ Python যোগ না করলেও চলে।
এই নকশা এতটাই কাজে লেগেছে যে python.org-এর নতুন Windows install manager-ও py কমান্ডকে কেন্দ্রে রেখেছে। শিক্ষাটি গভীর: সমস্যা যখন “অনেকগুলো জিনিসের মধ্যে কোনটি?”, তখন একটি ছোট মধ্যস্থ প্রোগ্রাম রাখলে সিদ্ধান্তটি এক জায়গায় চলে আসে। Mac/Linux-এর pyenv বা আধুনিক uv-এর মতো টুলও একই চিন্তা থেকে এসেছে।
মূল উপলব্ধি: py launcher কোনো অদ্ভুত Windows-বৈশিষ্ট্য নয় — এটি Unix-এর shebang প্রথার অভাব পূরণের জন্য তৈরি একটি “মধ্যস্থ”। Windows-এ নিশ্চিত হতে চাইলে py আপনার সবচেয়ে বিশ্বস্ত বন্ধু।
প্র ০৩Mac একসময় Python 2 নিয়েই আসত, পরে macOS 12.3-এ সেটি সরিয়ে দেওয়া হলো। কেন দিয়েছিল, কেন সরাল — আর এখান থেকে কী শেখার আছে?
২০০০-এর দশকের শুরু থেকেই Apple-এর Mac OS X-এ Python আগে থেকে ইনস্টল করা থাকত — Perl আর Ruby-র মতো। কারণ তখন সিস্টেমের নানা ছোট কাজের স্ক্রিপ্ট, কিছু admin টুল আর ডেভেলপারদের সুবিধার জন্য একটি “তৈরি” ভাষা রাখা জনপ্রিয় ধারণা ছিল। সমস্যা হলো, OS যে Python নিয়ে আসত, সেটি OS-এর গতিতেই আপডেট হতো — Python-এর নিজের গতিতে নয়।
২০০৮ সালে Python 3 এলেও বহু বছর Mac-এ python মানে ছিল Python 2.7. ২০১৯ সালে macOS Catalina-র (10.15) সাথে Apple ঘোষণা দেয় যে Python-এর মতো scripting language ভবিষ্যতে OS-এর সাথে আর থাকবে না। ২০২০ সালের জানুয়ারিতে Python 2-এর সমর্থন শেষ হয় — অর্থাৎ নিরাপত্তা-ত্রুটি আর ঠিক হবে না। শেষে ২০২২ সালের macOS 12.3 (Monterey)-তে Python 2.7 পুরোপুরি সরিয়ে দেওয়া হয়। যাঁদের পুরোনো স্ক্রিপ্ট /usr/bin/python-এর ওপর নির্ভর করত, সেগুলো হঠাৎ চলা বন্ধ করে দেয়।
আজকের Mac-এ /usr/bin/python3 একটি ছোট সংযোগ মাত্র: চালালে Apple-এর Command Line Tools ইনস্টল করতে বলে, আর সেখানে যে Python আসে সেটি Apple-এর বেছে নেওয়া, প্রায়ই পুরোনো version.
শিক্ষা কয়েকটি:
- সিস্টেমের Python সিস্টেমের জন্য। একে নিজের কাজে ব্যবহার করলে, বা
sudo pipদিয়ে বদলালে, OS আপডেটে আপনার প্রজেক্ট ভাঙতে পারে — বা আপনি OS-এর টুল ভেঙে ফেলতে পারেন। Linux-এর PEP 668 (externally-managed-environment) এই একই সমস্যার উত্তর। - যার ওপর নির্ভর করছেন, তার মালিক কে? আপনার প্রজেক্টের Python যদি অন্য কারও সিদ্ধান্তে বদলায়, প্রজেক্ট আপনার নিয়ন্ত্রণে নেই। নিজে ইনস্টল করা Python আর virtual environment সেই নিয়ন্ত্রণ ফিরিয়ে দেয়।
- পুরোনো জিনিস একদিন সত্যিই সরে যায়। “এখনো তো চলছে” কোনো পরিকল্পনা নয়।
মূল উপলব্ধি: OS-এর সাথে আসা Python সুবিধাজনক মনে হলেও সেটি আপনার নয়। নিজের Python নিজে ইনস্টল ও আপডেট করুন — সেটাই পেশাদার অভ্যাস।
প্র ০৪“Read–Eval–Print Loop” নামটি এলো কোথা থেকে? Python-এর REPL কি নতুন কোনো ধারণা?
না, ধারণাটি Python-এর চেয়ে অনেক পুরোনো। এর শিকড় Lisp ভাষায়, যা John McCarthy ১৯৫৮ সালে MIT-তে তৈরি করেন। Lisp-এ প্রোগ্রাম আর ডেটা একই রূপে লেখা হয়, আর ভাষাটির কেন্দ্রে আছে eval নামের একটি ফাংশন, যা লেখা কোডকে হিসাব করে ফল দেয়। Lisp-এর interactive পরিবেশ আক্ষরিক অর্থেই তিনটি ফাংশনের একটি লুপ ছিল — read (লেখা পড়া), eval (হিসাব), print (ফল দেখানো) — আর সেখান থেকেই “read-eval-print loop” নাম।
সে যুগে বেশিরভাগ প্রোগ্রাম চলত “batch”-এ: পাঞ্চ কার্ডে কোড জমা দিয়ে ঘণ্টা বা দিন পরে ফল পাওয়া যেত। একটি লাইন লিখে সঙ্গে সঙ্গে উত্তর পাওয়া ছিল বৈপ্লবিক। ১৯৬৪ সালে Dartmouth-এ তৈরি BASIC-ও শিক্ষার্থীদের জন্য এই রকম তাৎক্ষণিক অভিজ্ঞতা জনপ্রিয় করে।
Guido van Rossum ১৯৯১ সালে Python প্রকাশের সময় থেকেই এতে interactive mode রাখেন — ABC নামের একটি শিক্ষামূলক ভাষার অভিজ্ঞতা থেকে, যেখানে তিনি কাজ করেছিলেন। পরে ২০০১ সালে পদার্থবিজ্ঞানের ছাত্র Fernando Pérez আরও সমৃদ্ধ REPL হিসেবে IPython তৈরি করেন। সেখান থেকেই ২০১৪ সালে আলাদা হয়ে আসে Jupyter notebook — আজ ডেটা সায়েন্স আর AI গবেষণার প্রধান পরিবেশ, যা মূলত একটি সুসজ্জিত REPL. Python 3.13-এ অফিসিয়াল REPL-ও নতুন করে লেখা হয় (PyPy প্রজেক্টের কাজের ওপর ভিত্তি করে), যাতে একাধিক লাইন সম্পাদনা ও রঙ যুক্ত হয়।
কেন এটা গুরুত্বপূর্ণ? শেখার গতি নির্ভর করে “চেষ্টা → ফল” চক্র কত দ্রুত, তার ওপর। REPL এই চক্রকে সেকেন্ডে নামিয়ে আনে। একটি ফাংশন কী ফেরত দেয়, string-এর কোন method আছে — অনুমান না করে REPL-এ পরীক্ষা করুন। অভিজ্ঞ প্রোগ্রামাররাও কোড লেখার পাশে একটি REPL খোলা রাখেন।
মূল উপলব্ধি: REPL হলো কম্পিউটারের সাথে কথোপকথন — ৬০ বছরেরও বেশি পুরোনো একটি ধারণা, যা আজ Jupyter আর AI-গবেষণার ভিত্তি। সন্দেহ হলে আগে REPL-এ দেখে নিন।
প্র ০৫শুধু pip install লিখলেই তো কাজ হয় — তাহলে অভিজ্ঞরা কেন python -m pip install লিখতে বলেন?
কারণটি বুঝতে হলে জানতে হবে pip কমান্ডটি আসলে কী। প্রতিটি Python ইনস্টলের সাথে একটি ছোট pip (Windows-এ pip.exe) প্রোগ্রাম আসে, যা সেই নির্দিষ্ট Python-এর সাথে বাঁধা। কম্পিউটারে দুটি Python থাকলে দুটি pip-ও থাকে, আর terminal-এ pip লিখলে PATH-এর ক্রমে যেটি আগে পাওয়া যায় সেটি চলে।
এখন তানভীরের অবস্থা ভাবুন: python চালায় 3.13, কিন্তু PATH-এ প্রথম pip হলো 3.11-এর। তিনি pip install pandas দিলেন — সফল বার্তাও এলো। তারপর কোড চালাতেই ModuleNotFoundError: No module named 'pandas'. লাইব্রেরি গেছে 3.11-এ, কোড চলছে 3.13-এ। নতুনদের সবচেয়ে হতাশাজনক অভিজ্ঞতাগুলোর একটি।
python -m pip এই অনিশ্চয়তা দূর করে। -m মানে “এই নামের module-টি এই interpreter-এর ভেতর থেকেই চালাও।” তাই যে python চালাচ্ছেন, pip ঠিক সেটির। Python core developer Brett Cannon ২০১৯ সালে এ নিয়ে একটি বহুল-পঠিত লেখায় ঠিক এই যুক্তি দেন, আর pip-এর নিজস্ব নির্দেশিকাতেও এই রূপটিই দেখানো হয়।
আরও দুটি কারণ:
- pip নিজেকে আপডেট করা: Windows-এ চলমান
.exeফাইল নিজেকে বদলাতে পারে না।pip install --upgrade pipতাই ব্যর্থ হতে পারে, কিন্তুpython -m pip install --upgrade pipকাজ করে। - সব জায়গায় এক নিয়ম: virtual environment,
py -3.12 -m pip, Linux-এরpython3 -m pip— একই ধাঁচ।venv,pytest-এর মতো আরও অনেক টুল এভাবে-mদিয়ে চালানো যায়।
Virtual environment চালু (activate) থাকলে pip আর python দুটোই সেই ঘরের দিকে নির্দেশ করে, তাই ঝুঁকি কমে। তবু অভ্যাসটি রাখলে কখনো ঠকবেন না। আর AI যখন শুধু pip install বলে, নিজে থেকে python -m বসিয়ে নিন।
মূল উপলব্ধি: প্রশ্নটি আসলে “কোন Python?” — python -m pip সেই উত্তর কমান্ডের ভেতরেই লিখে দেয়। স্পষ্টতা সবসময় অনুমানের চেয়ে নিরাপদ।
অনুশীলন
বেশিরভাগ কাজ নিজের কম্পিউটারের terminal-এ করার — কম্পিউটার না থাকলে উত্তর পড়ে ধাপগুলো বুঝে নিন।
-
আপনার কম্পিউটারের Python-শুমারি: আপনার কম্পিউটারে কয়টি Python আছে, কোনটি কোথায়, আর terminal-এ
pythonলিখলে কোনটি চলে — বের করুন।Windows:
py -0pসব Python পথসহ দেখায়।where.exe pythonদেখায় PATH-এ কোনগুলো আছে — প্রথম লাইনটিইpythonলিখলে চলে। Mac/Linux:which -a python3একই কাজ করে। একাধিক পেলে ভয় নেই; শুধু ঠিক করুন কোনটি দিয়ে কাজ করবেন, আর VS Code-এ সেটিই interpreter হিসেবে বাছুন। তালিকায়WindowsAppsফোল্ডারেরpython.exeদেখলে সেটি সম্ভবত Store-এর alias. -
REPL-এ বাজারের হিসাব: REPL খুলে তিন লাইনে হিসাব করুন — প্রতি ডজন ডিম ১৫০ টাকা হলে ৩ ডজনের দাম কত, তার ওপর ৫% ডেলিভারি চার্জ যোগ করলে মোট কত। দ্বিতীয় ধাপে আগের ফল আবার না লিখে কোনো সংক্ষিপ্ত পথ ব্যবহার করুন।
>>> 150 * 3 450 >>> _ * 5 / 100 22.5 >>> 450 + _ 472.5_প্রতিবার শেষ ফল মনে রাখে: প্রথমে 450, তারপর চার্জ 22.5. তৃতীয় লাইনে_হলো 22.5, তাই মোট 472.5 টাকা। লক্ষ করুন, তৃতীয় লাইনে 450 হাতে লিখতে হয়েছে, কারণ_ততক্ষণে বদলে গেছে। এজন্য বড় হিসাবে নাম দেওয়া ভালো:eggs = 150 * 3. -
Error থেকে কারণ: নিচের তিনটি পরিস্থিতিতে সমস্যা কোথায়, বলুন — (ক)
python: can't open file 'C:\\Users\\Mitu\\hello.py': [Errno 2] No such file or directory, অথচ ফাইলটি Desktop-এ আছে (খ)pip install requestsসফল, কিন্তুimport requestsদিলেModuleNotFoundError(গ) VS Code-এprint("আমার নাম")ঠিক চলে, কিন্তু Notepad-এ লেখা আরেকটি ফাইল চালালেSyntaxError: Non-UTF-8 code(ক) Python ঠিকই পাওয়া গেছে (PATH ঠিক আছে), কিন্তু terminal দাঁড়িয়ে আছে
C:\Users\Mitu-তে, ফাইল আছে Desktop-এ। সমাধান:cd Desktop, তারপরpython hello.py. অথবা ফাইলের পুরো পথ দিন।(খ) দুটি ভিন্ন Python —
pipএকটির, কোড চলছে অন্যটিতে। সমাধান: যে Python দিয়ে কোড চালান, সেটি দিয়েইpython -m pip install requests, আর VS Code-এ interpreter যাচাই।(গ) ফাইলটি UTF-8 ছাড়া অন্য encoding-এ সেভ হয়েছে। Python 3 সোর্স ফাইল UTF-8 ধরে নেয়। সমাধান: ফাইলটি VS Code-এ খুলে নিচের status bar থেকে “Save with Encoding → UTF-8” করুন।
-
নিজের যাচাই-স্ক্রিপ্ট:
info.pyনামে একটি ফাইল বানান, যা দেখাবে কোন ফোল্ডারে বসে স্ক্রিপ্টটি চলছে, কোন interpreter চালাচ্ছে, আর version 3.10 বা নতুন কি না। তারপর ফাইলটি terminal থেকে দুটি ভিন্ন ফোল্ডারে দাঁড়িয়ে চালিয়ে দেখুন কী বদলায়।import sys from pathlib import Path print("বর্তমান ফোল্ডার:", Path.cwd()) print("Interpreter:", sys.executable) print("3.10 বা নতুন?", sys.version_info >= (3, 10))Path.cwd()দেখায় terminal-এর বর্তমান ফোল্ডার —cdদিয়ে অন্য ফোল্ডারে গিয়ে ফাইলের পুরো পথ দিয়ে চালালে এই লাইনটি বদলে যাবে, অথচ স্ক্রিপ্ট একই।sys.executableদেখায় কোনpython.exeআসলে চলছে — VS Code-এর ▷ আর terminal-এ আলাদা আসলে বুঝবেন দুটি ভিন্ন interpreter. এই ছোট ফাইলটি রেখে দিন; ভবিষ্যতে যেকোনো সেটআপ-বিভ্রান্তিতে প্রথমেই এটি চালাবেন।
নিজেকে যাচাই করুন
ভুল হলে কারণসহ ব্যাখ্যা পাবেন, আবার চেষ্টাও করতে পারবেন।
ক্রমনতুন Windows কম্পিউটারে প্রথম Python স্ক্রিপ্ট চালানোর ধাপগুলো সঠিক ক্রমে সাজান (▲▼ চেপে সরান)
- python.org থেকে installer নামিয়ে “Add python.exe to PATH” টিক দিয়ে ইনস্টল
- নতুন একটি terminal খুলে
python --versionদিয়ে যাচাই - Editor-এ কোড লিখে
hello.pyনামে একটি ফোল্ডারে সেভ cdদিয়ে terminal-কে সেই ফোল্ডারে নেওয়াpython hello.pyলিখে Enter
Python ইনস্টলের পর Windows-এর terminal-এ এলো: 'python' is not recognized as an internal or external command. সবচেয়ে সম্ভাব্য কারণ কোনটি?
- কোডে syntax-এর ভুল আছে
- Python-এর ফোল্ডার PATH-এ নেই, বা terminal ইনস্টলের আগে খোলা
- hello.py ফাইলটি ভুল ফোল্ডারে আছে
- কম্পিউটারে ইন্টারনেট সংযোগ নেই
Python-এর interactive mode-এ (REPL) _ নামটি কী বোঝায়?
- শেষবার খোলা ফাইলের নাম
- সেশনের প্রথম লাইনের ফল
- সবশেষে হিসাব হওয়া expression-এর ফল
- সবসময় একটি খালি মান
একটি Windows কম্পিউটারে Python 3.12 আর 3.13 দুটোই ইনস্টল আছে। PATH-এর ক্রম না বদলে নির্দিষ্টভাবে 3.12 দিয়ে app.py চালানোর উপায় কোনটি?
py -3.12 app.pypython --version app.pypip run app.py- ফাইলের নাম বদলে
app312.pyরাখা
লাইব্রেরি ইনস্টলের সময় শুধু pip install-এর বদলে python -m pip install লেখার মূল সুবিধা কী?
- ডাউনলোড দ্রুত হয়
- ইন্টারনেট ছাড়াই প্যাকেজ ইনস্টল হয়
- admin অধিকার ছাড়াই সিস্টেম ফোল্ডারে লেখা যায়
- যে Python দিয়ে কোড চালাবেন, লাইব্রেরি নিশ্চিতভাবে সেটিতেই ইনস্টল হয়
কোনো encoding ঘোষণা ছাড়া লেখা একটি Python 3 সোর্স ফাইল (.py) interpreter কোন encoding ধরে নিয়ে পড়ে?
- ASCII
- UTF-8
- কম্পিউটারের আঞ্চলিক (locale) encoding
- UTF-16
Windows-এ Notepad দিয়ে hello.py লিখে সেভ করা হলো। Terminal-এ সঠিক ফোল্ডারে থেকেও python hello.py দিলে “No such file or directory” আসছে, আর dir-এ দেখা যাচ্ছে hello.py.txt. কী ঘটেছে?
- Python ঠিকমতো ইনস্টল হয়নি
- ফাইলটি UTF-8-এ সেভ হয়নি
- ফাইলের আসল নাম
hello.py.txt, তাইhello.pyনামে কিছু নেই - Notepad-এ লেখা ফাইল Python কখনো চালাতে পারে না
শব্দকোষ
লেখার মধ্যে ডটেড দাগ দেওয়া শব্দে মাউস রাখুন বা চাপুন — অর্থ দেখাবে। এই পর্বের সব নতুন শব্দ এখানে একসাথে:
মনে রাখুন
- Python চালাতে লাগে interpreter (চালায়), editor (লেখে) আর terminal (নির্দেশ দেয়) — VS Code থাকলেই Python থাকে না।
- Windows-এ ইনস্টলের সময় “Add python.exe to PATH”; নিশ্চিত না হলে
py. Mac/Linux-এ কমান্ড সাধারণতpython3. - REPL দ্রুত পরীক্ষার জন্য (
_= শেষ ফল,exit()দিয়ে বের হওয়া); আসল প্রোগ্রাম.pyফাইলে, ফল দেখাতেprint(). - Shell প্রোগ্রাম খোঁজে PATH-এ, interpreter ফাইল খোঁজে বর্তমান ফোল্ডারে — “not recognized” আর “can't open file” এই দুই খোঁজার ব্যর্থতা।
- সন্দেহ হলে আগে জিজ্ঞেস করুন “কোন Python চলছে?”; লাইব্রেরি ইনস্টলে
python -m pip, প্রজেক্টে virtual environment (পর্ব ২৩)।
আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ
- পর্ব ০৪ · প্রথম প্রোগ্রাম — print, comment আর ভুল পড়াপরবর্তী পর্বপ্রথম স্ক্রিপ্টের প্রতিটি লাইন, আর error মেসেজ পড়ার কৌশল।
- Python প্রোগ্রামিং · কোর্স হোম৫৫টি পর্বপুরো কোর্সের রোডম্যাপ — কোন পর্ব কখন।
- AI-এর জন্য Python · সেটআপ ও Hello Worldপাশের ট্র্যাকAnaconda, VS Code আর Google Colab — AI ও ডেটার কাজের দৃষ্টিকোণ থেকে সেটআপ।
- C প্রোগ্রামিং · টুলচেইনতুলনা করুনCompiled ভাষায় কোড থেকে প্রোগ্রাম তৈরির ধাপগুলো কেমন।