মৌলিক

Python-এর সংস্করণ: Python 2 ও 3, 3.10–3.15-এ নতুন কী এবং কোনটি ইনস্টল করবেন

হালনাগাদ: · Skillaria.Top

সক্রিয় সংস্করণ হলো 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 2Python 3
প্রিন্টprint "hi" — অপারেটরprint("hi") — ফাংশন
স্ট্রিংডিফল্টভাবে বাইট, Unicode — u"..."str — সবসময় Unicode, বাইট — bytes
ভাগ7 / 2 দেয় 37 / 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.72010জানুয়ারি 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: от новичка до профи” কোর্সে বিষয়টি অনুশীলনসহ বিস্তারিত শেখানো হয়েছে।

কোর্সে যান