Python-এর সংস্করণ: Python 2 ও 3, 3.10–3.15-এ নতুন কী এবং কোনটি ইনস্টল করবেন
সক্রিয় সংস্করণ হলো Python 3, সর্বশেষ স্থিতিশীল সংস্করণ — Python 3.15 (রিলিজ ৯ অক্টোবর ২০২৬); Python 2-এর সাপোর্ট ২০২০ সাল থেকে বন্ধ। নতুন সংস্করণ প্রতি অক্টোবরে বের হয় এবং প্রায় পাঁচ বছর সংশোধন পায়, তাই নতুন প্রজেক্টের জন্য সর্বশেষ 3.x ইনস্টল করুন; বর্তমান সংস্করণ জানতে চালান python3 --version।
বর্তমানে Python-এর সক্রিয় ধারা একটিই — Python 3। সর্বশেষ স্থিতিশীল সংস্করণ Python 3.15, যা ৯ অক্টোবর ২০২৬-এ প্রকাশিত হয়েছে; আর Python 2 আনুষ্ঠানিকভাবে ২০২০ সালেই জীবনচক্র শেষ করেছে। নিচে দেখব Python-এর সংস্করণগুলো কীভাবে আলাদা, 3.10–3.15-এ প্রতিটিতে কী যুক্ত হয়েছে, কোনটি ইনস্টল করা উচিত এবং আপনার কম্পিউটারে কোনটি আছে তা কীভাবে জানবেন।
Python-এর সংস্করণ কীভাবে সাজানো
সংস্করণ নম্বর তিনটি সংখ্যায় গঠিত: 3.15.0। প্রথমটি মেজর সংস্করণ (ভাষার ধারা), দ্বিতীয়টি মাইনর — এতে নতুন সুবিধা যুক্ত হয়, তৃতীয়টি প্যাচ নম্বর — এতে শুধু বাগ সংশোধন থাকে। «Python-এর সংস্করণ» বলতে সাধারণত মাইনর সংস্করণই বোঝানো হয়: 3.10, 3.11, 3.12 ইত্যাদি।
২০১৯ সাল থেকে বার্ষিক চক্র চালু আছে (PEP 602): প্রতি অক্টোবরে নতুন মাইনর সংস্করণ বের হয়। রিলিজের প্রায় ছয় মাস আগে আলফা, তারপর বিটা ও রিলিজ-প্রার্থী আসে, আর রিলিজের পরে আসে 3.15.1, 3.15.2 ধরনের সংশোধনী। এই সংশোধনীগুলোতে আপডেট নিরাপদ: প্যাচ সংস্করণে ভাষার আচরণ বদলায় না।
অনুসন্ধানে এখান থেকেই বিভ্রান্তি আসে: «python 311» এবং «python 3.11» একই জিনিস — সংস্করণ 3.11। নম্বরটি দশমিক ভগ্নাংশ নয়, তাই 3.10 নতুন 3.9-এর চেয়ে, আর 3.15 নতুন 3.2-এর চেয়ে।
Python 2 ও Python 3: পার্থক্য কোথায়
Python 3 বের হয় ২০০৮ সালে এবং পুরনো কিছু সিদ্ধান্ত ঠিক করতে ইচ্ছাকৃতভাবে পেছনের সঙ্গে সামঞ্জস্য ভেঙেছিল। তাই Python 2-এর কোড প্রায়ই সম্পাদনা ছাড়া Python 3-এ চলে না। দ্বিতীয় ধারার শেষ সংস্করণ 2.7; এর সাপোর্ট শেষ হয় ১ জানুয়ারি ২০২০ তারিখে, আর চূড়ান্ত রিলিজ 2.7.18 বের হয় ২০২০ সালের এপ্রিলে।
| বিষয় | Python 2 | Python 3 |
|---|---|---|
| প্রিন্ট | print "hi" — অপারেটর | print("hi") — ফাংশন |
| স্ট্রিং | ডিফল্টভাবে বাইট, Unicode — u"..." | str — সবসময় Unicode, বাইট — bytes |
| ভাগ | 7 / 2 দেয় 3 | 7 / 2 দেয় 3.5, পূর্ণসংখ্যা — 7 // 2 |
| ইনপুট | raw_input() | input() |
| রেঞ্জ | range তালিকা বানায়, xrange — লেজি | range লেজি |
| সাপোর্ট | ২০২০ থেকে নেই | প্রতি বছর নতুন সংস্করণ |
কোনো টিউটোরিয়াল বা উত্তরে যদি print বন্ধনী ছাড়া লেখা থাকে, সেটি Python 2 — উপাদানটি পুরনো। দ্বিতীয় ধারা এখন শেখার প্রয়োজন নেই: নতুন সিস্টেমে এটি ইনস্টল হয় না, লাইব্রেরিগুলো বহু আগে এর সাপোর্ট ছেড়েছে, আর পুরনো কোড স্থানান্তরের জন্য ছাড়া এর জ্ঞান কাজে লাগে না।
Python 3.10–3.15-এ নতুন কী
নিচে প্রতিটি সংস্করণের মূল বিষয়গুলো দেওয়া হলো — যা প্রতিদিনের কোড বদলে দেয়। সম্পূর্ণ পরিবর্তনের তালিকা আছে অফিশিয়াল ডকুমেন্টেশনের What's New বিভাগে।
Python 3.10 (অক্টোবর 2021)
- প্যাটার্ন ম্যাচিং
match/case(PEP 634) —if/elif-এর শৃঙ্খলের বদলে ডেটা কাঠামো বিশ্লেষণ। - উল্লম্ব দণ্ড দিয়ে টাইপের সংযোগ:
Optional[int]-এর বদলেint | None(PEP 604)। - একই
with-এ বন্ধনীতে একাধিক কনটেক্সট ম্যানেজার। - সিনট্যাক্স ত্রুটির বার্তা আরও স্পষ্ট।
def describe(point):
match point:
case (0, 0):
return "মূলবিন্দু"
case (x, 0):
return f"X অক্ষে: {x}"
case _:
return "অন্য কোথাও"
print(describe((3, 0))) # X অক্ষে: 3
Python 3.11 (অক্টোবর 2022)
- গতি: Faster CPython প্রকল্প ইন্টারপ্রেটারকে গড়ে প্রায় এক-চতুর্থাংশ দ্রুত করেছে, কিছু কাজে আরও বেশি।
- নির্ভুল ট্রেসব্যাক নির্দেশক:
^^^^চিহ্ন দেখায় লাইনের কোন অংশে ত্রুটি হয়েছে (PEP 657)। - এক্সেপশন গ্রুপ ও
except*(PEP 654),add_note()দিয়ে এক্সেপশনে নোট যোগ। - TOML পড়ার জন্য
tomllibমডিউল — যেমনpyproject.toml।
Python 3.12 (অক্টোবর 2023)
- জেনেরিকের নতুন সিনট্যাক্স:
def first[T](items: list[T]) -> Tএবং টাইপ এলিয়াসের জন্যtypeকীওয়ার্ড (PEP 695)। - f-স্ট্রিং এখন পূর্ণাঙ্গ ব্যাকরণ (PEP 701): ভেতরে একই উদ্ধৃতি চিহ্ন, লাইনভাঙন ও মন্তব্য ব্যবহার করা যায়।
- স্ট্যান্ডার্ড লাইব্রেরি থেকে পুরনো
distutilsসরানো হয়েছে। - ত্রুটির বার্তায় আরও বিস্তারিত পরামর্শ, যেমন «মডিউলটি ইমপোর্ট করতে ভুলে গেছেন?»।
type Pair = tuple[int, int]
def first[T](items: list[T]) -> T:
return items[0]
songs = ["a", "b"]
print(f"প্রথম: {first(songs)!r}, মোট {len(songs)}")
print(f"{"ভেতরের উদ্ধৃতি"}") # 3.12 থেকে কাজ করে
«f-স্ট্রিং কোন সংস্করণ থেকে» — এই প্রশ্নের উত্তর: f-স্ট্রিং নিজেই এসেছে Python 3.6-এ, আর কোঁকড়া বন্ধনীর ভেতরে একই উদ্ধৃতি ও লাইনভাঙনের স্বাধীনতা যোগ করেছে 3.12।
Python 3.13 (অক্টোবর 2024)
- নতুন ইন্টারঅ্যাকটিভ কনসোল: রং, বহুলাইন সম্পাদনা, ইতিহাস, এবং বন্ধনী ছাড়া
exitওhelpকমান্ড। - পরীক্ষামূলক GIL-মুক্ত বিল্ড (free-threaded, PEP 703) এবং পরীক্ষামূলক JIT-কম্পাইলার (PEP 744)।
- অপ্রয়োজনীয় পুরনো মডিউল সরানো হয়েছে, যেমন
cgiওtelnetlib(PEP 594)। - নতুন সংস্করণগুলোর বাগ সংশোধনের সময়সীমা বাড়ানো হয়েছে দুই বছর পর্যন্ত।
Python 3.14 (অক্টোবর 2025)
- টেমপ্লেট স্ট্রিং, t-স্ট্রিং:
t"হ্যালো, {name}"তৈরি স্ট্রিং না দিয়ে একটি টেমপ্লেট অবজেক্ট দেয়, যা নিরাপদে প্রক্রিয়া করা যায় (PEP 750)। - অ্যানোটেশনের বিলম্বিত মূল্যায়ন (PEP 649) — ফাইলে পরে ঘোষিত টাইপ নিয়ে কম সমস্যা।
- GIL-মুক্ত বিল্ড পরীক্ষামূলক অবস্থা থেকে বের হয়ে অফিশিয়াল সাপোর্ট পেয়েছে।
- মডিউল
compression.zstd, কনসোলে সিনট্যাক্স হাইলাইটিং, এবং বন্ধনী ছাড়াexcept A, B:।
Python 3.15 (৯ অক্টোবর 2026)
- লেজি ইমপোর্ট
lazy import(PEP 810): মডিউল শুরুতে নয়, প্রথম ব্যবহারের সময় লোড হয়। কোর্সের মাপেlazy import pandasসহ স্ক্রিপ্ট শুরু হয়েছে 280 মিলিসেকেন্ডের বদলে 14 মিলিসেকেন্ডে। - বিল্ট-ইন অপরিবর্তনীয় ডিকশনারি
frozendict(PEP 814)। - লিস্ট কমপ্রিহেনশনে আনপ্যাকিং:
[*g for g in groups](PEP 798)। - স্ট্যান্ডার্ড লাইব্রেরিতে স্যাম্পলিং প্রোফাইলার Tachyon (PEP 799)।
- ফাইল নিয়ে কাজে ডিফল্টভাবে UTF-8 (PEP 686) — Windows-এর এনকোডিং-সমস্যার অবসান।
- ত্রুটির বার্তায় নতুন «Did you mean» পরামর্শ।
lazy import json # PEP 810
cfg = frozendict(limit=500) # PEP 814
flat = [*g for g in [[1, 2], [3]]] # PEP 798 -> [1, 2, 3]
print(flat, cfg["limit"])
# python -m profiling.sampling run app.py # PEP 799, Tachyon
এই কোড শুধু 3.15-এ চলবে: পুরনো সংস্করণে lazy import ও কমপ্রিহেনশনে আনপ্যাকিং SyntaxError দেবে, আর frozendict — NameError।
Python সংস্করণের সাপোর্ট কতদিন চলে
প্রতিটি সংস্করণ প্রায় পাঁচ বছর বাঁচে। প্রথমে এটি সাধারণ বাগ সংশোধন ও নিয়মিত প্যাচ পায় (3.13 থেকে — দুই বছর), তারপর সময়সীমার শেষ পর্যন্ত শুধু নিরাপত্তা সংশোধন। এরপর সংস্করণটি end-of-life: এতে থাকা দুর্বলতা আর কেউ বন্ধ করে না।
| সংস্করণ | রিলিজ | সাপোর্ট শেষ | অক্টোবর 2026-এ অবস্থা |
|---|---|---|---|
| 2.7 | 2010 | জানুয়ারি 2020 | সাপোর্ট নেই |
| 3.9 | অক্টোবর 2020 | অক্টোবর 2025 | সাপোর্ট নেই |
| 3.10 | অক্টোবর 2021 | অক্টোবর 2026 | সাপোর্ট শেষ হচ্ছে |
| 3.11 | অক্টোবর 2022 | অক্টোবর 2027 | শুধু নিরাপত্তা |
| 3.12 | অক্টোবর 2023 | অক্টোবর 2028 | শুধু নিরাপত্তা |
| 3.13 | অক্টোবর 2024 | অক্টোবর 2029 | বাগ সংশোধন |
| 3.14 | অক্টোবর 2025 | অক্টোবর 2030 | বাগ সংশোধন |
| 3.15 | অক্টোবর 2026 | অক্টোবর 2031 | সর্বশেষ |
প্রতিটি শাখার বর্তমান অবস্থা Python Developer's Guide-এর Status of Python versions পাতায় প্রকাশিত হয়। দীর্ঘমেয়াদি প্রজেক্টের জন্য সংস্করণ বাছার আগে সেখানে একবার দেখে নেওয়া উচিত।
কোন Python সংস্করণ ইনস্টল করবেন
শেখা ও নতুন প্রজেক্টের জন্য সর্বশেষ স্থিতিশীল সংস্করণ নিন — এখন তা Python 3.15। «আমি প্রমাণিত 3.10 নেব» — এই যুক্তি কাজ করে না: অক্টোবর 2026-এ এটি নিরাপত্তা সংশোধনও আর পাবে না, আর যে সংস্করণ বিদায় নিচ্ছে তার উপর শিখলে পরে নতুন করে শিখতে হবে। Python 3-এর ভেতরে সামঞ্জস্য ভালো: পুরনো সংস্করণের কোড প্রায় সবসময় নতুনে চলে, উল্টোটা নয়।
ব্যতিক্রমও আছে। প্রয়োজনীয় লাইব্রেরি যদি এখনও নতুন সংস্করণের জন্য প্রস্তুত বিল্ড না দিয়ে থাকে (অক্টোবরের রিলিজের পরের কয়েক সপ্তাহে C-এক্সটেনশনযুক্ত প্যাকেজে এমন হয়), তবে আগের সংস্করণ — 3.14 নিন। দীর্ঘ সময় চলবে এমন সার্ভারে ওএস-এর রিপোজিটরির সংস্করণ বা uv দিয়ে প্রয়োজনীয়টি বেছে নিন। মূল নিয়ম — এমন সংস্করণ বেছে নেবেন না, যার সাপোর্ট এক বছরের কম বাকি।
| পরিস্থিতি | কী ইনস্টল করবেন |
|---|---|
| শূন্য থেকে শিখছেন | সর্বশেষ স্থিতিশীল (3.15) |
| নতুন প্রজেক্ট | সর্বশেষ বা তার আগেরটি |
| লাইব্রেরি নতুনটি সাপোর্ট করে না | আগের মাইনর সংস্করণ |
| পুরনো প্রজেক্ট 3.10 বা তার নিচে | সাপোর্টেড সংস্করণে যাওয়ার পরিকল্পনা |
| Python 2-এর কোড | Python 3-এ স্থানান্তর |
কম্পিউটারে Python-এর সংস্করণ কীভাবে জানবেন
টার্মিনালে একটি কমান্ডই যথেষ্ট। macOS ও Linux-এ সাধারণত python3 ব্যবহৃত হয়, Windows-এ — python বা লঞ্চার py।
$ python3 --version
Python 3.12.3 # পুরনো সংস্করণ — আপডেটের সময় হয়েছে
$ python3 -V
Python 3.15.0
Windows-এর লঞ্চার একসঙ্গে সব ইনস্টল করা সংস্করণ দেখায়, আর uv দেখায় যেগুলো সে দেখতে পায় এবং ইনস্টল করতে পারে:
py --list
uv python list
প্রোগ্রামের ভেতর থেকে সংস্করণ দেয় sys মডিউল। sys.version_info টাপলটি তুলনা করা সুবিধাজনক, যাতে স্ক্রিপ্ট নিজেই যাচাই করতে পারে ইন্টারপ্রেটার উপযুক্ত কিনা:
import sys
print(sys.version) # তারিখসহ পূর্ণ সংস্করণ লাইন
print(sys.version_info[:3]) # যেমন (3, 15, 0)
if sys.version_info < (3, 10):
raise SystemExit("Python 3.10 বা নতুন প্রয়োজন")
যদি python3 --version আপনার ইনস্টল করা সংস্করণ না দেখায়, তবে PATH-এ অন্য একটি ইন্টারপ্রেটার আগে পাওয়া যাচ্ছে। কোনটি, তা দেখতে macOS ও Linux-এ which python3, Windows-এ where python চালান।
এক কম্পিউটারে একাধিক সংস্করণ
পাশাপাশি 3.13 ও 3.15 রাখা স্বাভাবিক: প্রতিটি নিজের ফোল্ডারে ইনস্টল হয়। এগুলো সবচেয়ে সুবিধাজনকভাবে uv দিয়ে চালানো যায়: uv python install 3.15 সংস্করণটি ডাউনলোড করে, আর uv python pin 3.15 সেটি .python-version ফাইলে প্রজেক্টের সঙ্গে বেঁধে দেয়। Linux-এর সিস্টেম Python হাতে না বদলানোই ভালো — তার উপর ওএসের নিজস্ব ইউটিলিটি চলে।
প্রজেক্টের ন্যূনতম সংস্করণ লেখা হয় pyproject.toml-এ, requires-python ক্ষেত্রে। তখন প্যাকেজ ইনস্টলার অনুপযুক্ত ইন্টারপ্রেটারে প্রজেক্ট বসাতে দেবে না।
[project]
name = "expenses"
version = "0.1.0"
requires-python = ">=3.15"
সারসংক্ষেপ
Python-এর সক্রিয় সংস্করণ হলো 3-এর ধারা, তার মধ্যে সর্বশেষটি 3.15 — লেজি ইমপোর্ট, frozendict ও ডিফল্ট UTF-8 নিয়ে। Python 2 ২০২০ সালে শেষ হয়েছে, 3.10 অক্টোবর 2026-এ সাপোর্ট হারাচ্ছে, তাই শেখা ও নতুন প্রজেক্ট শুরু করা উচিত তাজা সংস্করণে। নিজেরটি জানতে চালান python3 --version। কোর্সের প্রতিটি বিষয়ের শেষে «3.10–3.15-এ নতুন কী» ব্লক আছে, তাই সংস্করণের পরিবর্তনগুলো হাতে-কলমে দেখানো হয়।
সাধারণ প্রশ্ন
মেনু স্টার্টে «IDLE Python 3.10 64-bit» লেখা থাকলে সেটি কী?
এটি Python-এর সাথে আসা সহজ ডেভেলপমেন্ট পরিবেশ IDLE, যা python.org-এর ইনস্টলার বসায়; নামে ইন্টারপ্রেটারের সংস্করণ ও বিট-সংখ্যা লেখা থাকে। সেখানে যদি 3.10 লেখা থাকে, তবে আপনার সংস্করণের সাপোর্ট শেষ হতে চলেছে — নতুন একটি ইনস্টল করা ভালো।
Python 3.12 থেকে 3.15-এ কি ওপরে আপডেট করা যায়?
মাইনর সংস্করণগুলো পাশাপাশি ইনস্টল হয়, ওপরে নয়: 3.15 বসানোর পর পুরনোটি থাকে, আলাদাভাবে মুছে ফেলা যায়। নতুন সংস্করণের জন্য লাইব্রেরি আবার ইনস্টল করতে হয় বা ভার্চুয়াল এনভায়রনমেন্ট নতুন করে বানাতে হয়।
64-bit ও 32-bit সংস্করণের পার্থক্য কী?
64-bit সংস্করণ বেশি মেমরি ব্যবহার করতে পারে এবং সব আধুনিক কম্পিউটারে উপযুক্ত; 32-bit শুধু খুব পুরনো সিস্টেমের জন্য নেওয়া হয়।
আলফা ও বিটা সংস্করণ কেন থাকে?
এগুলো পরবর্তী সংস্করণের প্রাথমিক বিল্ড, যা লাইব্রেরি ও প্রজেক্ট পরীক্ষার জন্য দেওয়া হয়; শেখা ও কাজের জন্য শুধু চূড়ান্ত রিলিজ নিন।
“Python 3.15: от новичка до профи” কোর্সে বিষয়টি অনুশীলনসহ বিস্তারিত শেখানো হয়েছে।
কোর্সে যান