🌍 Select Your Language

Please choose your preferred language to read the articles. (ඔබට කියවීමට පහසු භාෂාව තෝරන්න)

BREAKING NEWS
🚀 Kaweesha launched the new AI Tech Blog! 💻 Python & Java Tutorials are now live. 🎮 Game Development Guide: Building 2D Games with Godot. 🌐 Web Hosting secrets revealed - Check the latest post!

Python Sinhala - Part 07: අනුන්ගේ කෝඩ් වලින් වැඩ ගමු! (Modules & Libraries) 📦🛠️

Python Modules and Libraries PIP installation guide Sinhala Tutorial Part 07

හිතන්න ඔයාට ලස්සන ස්පෝර්ට්ස් කාර් එකක් හදන්න ඕනේ කියලා. ඔයා රෝදේ ඉඳන්, එන්ජිමේ ඉඳන්, වීදුරු ටික පවා මුල ඉඳන් යකඩ තල තල, රබර් උණු කර කර හදනවද? පිස්සුද! කවුරුවත් එහෙම කරන්නේ නෑනේ. ඔයා කරන්නේ කඩෙන් හොඳම රෝද ටික ගේනවා, පවර්ෆුල්ම එන්ජිමක් ගේනවා, ඒවා එකලස් කරනවා (Assemble). 🚗

Programming වලත් ඇත්ත ලෝකයේ වැඩ වෙන්නේ අන්න ඒ විදියටයි. "Don't Reinvent the Wheel" (තියෙන දේ ආයේ අලුතින් හදන්න එපා) කියන එක තමයි Software Engineering වල තියෙන ප්‍රධානම රන් නීතියක්. විශේෂයෙන්ම Python වගේ භාෂාවක් අද ලෝකයේ මෙච්චර ජනප්‍රිය වෙන්න ප්‍රධානම හේතුව තමයි, ලෝකේ ඉන්න සුපිරිම වැඩ්ඩො (Developers ලා) දැනටමත් අපිට ඕන කරන අමාරුම කෝඩ් ලියලා අන්තර්ජාලයේ නොමිලේම දාලා තියෙන එක. අපි කරන්න ඕනේ ඒ ලියපු කෝඩ් අපේ ප්‍රොජෙක්ට් එකට ගෙන්නගෙන (Import කරගෙන) අපේ වැඩේ ලේසි කරගන්න එක විතරයි.

අද KP Tech Gear මේ Mega Deep Dive ලිපියෙන් අපි කතා කරන්නේ Python වල කොඳු නාරටිය බඳු වන Modules, Packages සහ Libraries කියන්නේ මොනවද කියලයි. ඒ වගේම අන්තර්ජාලයෙන් අනුන්ගේ කෝඩ් බාගන්න පාවිච්චි කරන "PIP" කියන මැජික් ටූල් එක ගැනත් සම්පූර්ණයෙන්ම ඉගෙන ගෙන, සුපිරි ප්‍රොජෙක්ට්ස් 3කුත් අපි අද හදලා බලමු. කෝපි එකක් හදාගෙන ලෑස්ති වෙන්න, මේක ඔයාගේ Python ගමනේ හැරවුම් ලක්ෂයක් වේවි! 👇


📦 1. Modules, Packages සහ Libraries: මොකක්ද මේ වෙනස?

ගොඩක් අයට මේ වචන තුන නිතරම පැටලෙනවා. අපි මේක ඉතාම සරලව පොත් ගුලක් (Library එකක්) ආශ්‍රයෙන් තේරුම් ගමු.

  • Module (මොඩියුලයක්): මේක හරියට එක පොතක් වගේ. සරලවම කිව්වොත් Module එකක් කියන්නේ තවත් එක්තරා Python ෆයිල් එකක් (.py file). මේ ෆයිල් එක ඇතුලේ Functions, Variables සහ Classes ගොඩක් ලියලා තියෙන්න පුළුවන්.
  • Package (පැකේජයක්): මේක හරියට පොත් ගොඩක් දාලා තියෙන පොත් රාක්කයක් වගේ. එකිනෙකට සම්බන්ධ Modules (Python ෆයිල්ස්) ගොඩක් එකතු කරලා හදපු Folder එකකට තමයි Package එකක් කියන්නේ. (විශේෂත්වය තමයි මේ ෆෝල්ඩරේ ඇතුලේ අනිවාර්යයෙන්ම __init__.py කියලා හිස් ෆයිල් එකක් තියෙන්න ඕනේ).
  • Library (ලයිබ්‍රරියක්): මේක හරියටම මුළු පුස්තකාලයම වගේ. Packages සහ Modules විශාල ප්‍රමාණයක් එකතු කරලා හදපු දැවැන්ත කෝඩ් එකතුවකට තමයි Library එකක් කියන්නේ. උදාහරණයක් විදියට AI හදන්න ගන්න TensorFlow, Data Science වලට ගන්න Pandas කියන්නේ මේ වගේ දැවැන්ත Libraries.

🛠️ 2. Built-in Modules (ගෙදරම තියෙන ටූල් පෙට්ටි)

Python ඔයාගේ මැෂින් එකට Install කරනකොටම, Python කට්ටිය නොමිලේම අපිට Modules තොගයක් දෙනවා. මේවා අන්තර්ජාලයෙන් බාන්න ඕනේ නෑ. කෙලින්ම import කියන වචනේ පාවිච්චි කරලා අපේ කෝඩ් එකට ගන්න පුළුවන්. මේවට කියන්නේ Python Standard Library කියලා.

🔥 අනිවාර්යයෙන්ම දැනගත යුතු Built-in Modules 4ක්:

  • math - උසස් ගණිත කර්ම සඳහා (Square Root, Power, Sin/Cos, Pi අගය).
  • random - අහඹු දේවල් කරන්න (Lottery, Games, Random Passwords හදන්න).
  • datetime - වෙලාව සහ දිනය එක්ක සෙල්ලම් කරන්න (වයස හොයන්න, Alarms හදන්න).
  • time - වැඩසටහන අතරමඟ නවත්වන්න (Sleep) සහ වේලාව මනින්න.

🧮 2.1 math මොඩියුලය පාවිච්චි කරමු

අපි හිතමු අපිට රවුමක වර්ගඵලය හොයන්න ඕනේ කියලා. රවුමක වර්ගඵලය හොයන සූත්‍රය තමයි $\pi \times r^2$. අපිට Pi ($\pi$) වල අගය වන 3.14159... මතක තියාගන්න ඕනේ නෑ. math මොඩියුලයේ ඒක තියෙනවා.

import math # ගණිත පෙට්ටිය අපේ කෝඩ් එකට ගෙන්න ගන්නවා # 1. වර්ග මූලය (Square Root) සෙවීම root = math.sqrt(25) print(f"25 හි වර්ග මූලය: {root}") # Output: 5.0 # 2. Pi අගය පාවිච්චි කර රවුමක වර්ගඵලය සෙවීම radius = 7 area = math.pi * math.pow(radius, 2) # pow(7, 2) කියන්නේ 7 හි වර්ගයයි (7^2) print(f"රවුමේ වර්ගඵලය: {area}")

🎲 2.2 random මොඩියුලය පාවිච්චි කරමු

ගේම්ස් හදද්දී, නැත්නම් OTP (One Time Password) යවද්දී අපිට අහඹු අංක ඕනේ වෙනවා.

import random # රැන්ඩම් පෙට්ටිය ගෙන්න ගන්නවා # 1. 1 ත් 100 ත් අතර අහඹු අංකයක් ගැනීම (දාදු කැටයක් දානවා වගේ) lucky_num = random.randint(1, 100) print(f"ඔයාගේ වාසනාවන්ත අංකය: {lucky_num}") # 2. ලිස්ට් එකකින් අහඹු ලෙස එකක් තේරීම (Lucky Draw) names = ["Kamal", "Nimal", "Sunil", "Amal"] winner = random.choice(names) print(f"දිනුම් ඇදීමේ ජයග්‍රාහකයා: {winner} 🎉")

🎨 3. Import කරන රහසිගත ක්‍රම 3ක් (Import Styles)

අපි මොඩියුලයක් අපේ කෝඩ් එකට ගෙන්න ගනිද්දී (Import කරද්දී) ඒක ක්‍රම 3කට කරන්න පුළුවන්. ප්‍රොෆෙෂනල් කෝඩර්ස්ලා මේ ක්‍රම 3ම අවස්ථාව අනුව පාවිච්චි කරනවා.

ක්‍රමය (Style) කෝඩ් එක වාසි සහ අවාසි
1. Normal Import
(සම්පූර්ණ පෙට්ටියම ගැනීම)
import math
math.sqrt(16)
ආරක්ෂිතම ක්‍රමයයි. නමුත් හැමතිස්සෙම math. කියලා ලියන්න වෙන නිසා කෝඩ් එක දිග වෙනවා.
2. Specific Import
(ඕන ටූල් එක විතරක් ගැනීම)
from math import sqrt
sqrt(16)
කෝඩ් එක කියවන්න ලේසියි. මොඩියුලයේ නම ලියන්න ඕනේ නෑ. Memory එක ඉතිරි වෙනවා.
3. Alias Import
(අන්වර්ථ නමක් දීම)
import pandas as pd
pd.read_csv()
දිග නම් තියෙන මොඩියුල් වලට කෙටි නමක් (Nickname) දෙනවා. Data Science වල ගොඩක් ජනප්‍රියයි.
🚨 වෘත්තීය කෝඩර්ස්ලා නොකරන දේ (The Evil Star Import):

සමහරු from math import * කියලා ලියනවා. මේ තරු ලකුණෙන් (*) කියන්නේ "math එකේ තියෙන ඔක්කොම මගේ කෝඩ් එකට කෙලින්ම ගෙන්න" කියන එකයි. මේක කවදාවත් කරන්න එපා! මොකද ඔයාගේ කෝඩ් එකේ දැනටමත් sqrt කියලා variable එකක් තිබ්බොත්, math එකෙන් එන sqrt එක ඒක උඩින් ලියවිලා (Override වෙලා) කෝඩ් එක සම්පූර්ණයෙන්ම පිස්සු නටන්න ගන්නවා. (මේකට කියන්නේ Namespace Pollution කියලා).

🌍 4. පිටරටින් බඩු ගෙන්වීම: PIP සහ PyPI කියන්නේ මොකක්ද?

දැන් තමයි හොඳම හරිය. Python එක්ක එන Built-in Modules වලින් අපිට හැමදේම කරන්න බෑ. උදාහරණයක් විදියට YouTube Video එකක් ඩවුන්ලෝඩ් කරන්න, හඬ හඳුනාගන්න (Voice Recognition), නැත්නම් වෙබ් සයිට් එකක් හදන්න Python Standard Library එකේ ටූල්ස් නෑ.

මේවට ලෝකේ ඉන්න අනිත් දක්ෂ කෝඩර්ස්ලා හදපු Libraries පාවිච්චි කරන්න වෙනවා. මේ ඔක්කොම Libraries (ලක්ෂ 4කට වඩා) ගබඩා කරලා තියෙන මධ්‍යස්ථානයට (හරියට Android වල Play Store එක වගේ) අපි කියනවා PyPI (Python Package Index) කියලා.

මෙන්න මේ PyPI වෙබ් සයිට් එකේ තියෙන Libraries, ඔයාගේ පරිගණකයට ලේසියෙන්ම Download කරලා Install කරලා දෙන පොඩි කමාන්ඩ් ලයින් ටූල් එක තමයි PIP (Pip Installs Packages) කියන්නේ. ඔයා Python දාද්දිම PIP එකත් ඔයාගේ මැෂින් එකට ඉබේම ඉන්ස්ටෝල් වෙනවා.

💻 PIP පාවිච්චි කරන්නේ කොහොමද?

මේක කරන්නේ ඔයාගේ VS Code එකක් Terminal එකේ, එහෙමත් නැත්නම් වින්ඩෝස් වල CMD (Command Prompt) එකෙයි. (Internet තියෙන්න ඕනේ).

1. අලුත් Library එකක් Install කරන්න:

pip install [library_name]
උදාහරණ: pip install pytube

2. Install කරපු Library එකක් අයින් කරන්න (Uninstall):

pip uninstall [library_name]
උදාහරණ: pip uninstall pytube

3. මැෂින් එකේ දැනට Install වෙලා තියෙන ඔක්කොම Libraries ලිස්ට් එකක් බලන්න:

pip list
⚠️ "PIP is not recognized as an internal or external command" කියලා Error එකක් එනවද?

ගොඩක් අලුත් අයට එන ප්‍රශ්නයක් මේක. මේකට හේතුව ඔයා Python Install කරද්දී මුල්ම Screen එකේ යටින් තියෙන "Add Python to PATH" කියන පොඩි කොටුවට හරි ලකුණ (Tick) දැම්මේ නැති එකයි.

විසඳුම: ඔයාගේ මැෂින් එකෙන් Python සම්පූර්ණයෙන්ම Uninstall කරන්න. ඊට පස්සේ ආයෙත් Setup එක Run කරලා, අර "Add to PATH" කියන කොටුවට අනිවාර්යයෙන්ම Tick එක දාලා Install කරන්න. ඊට පස්සේ CMD එක වහලා ආයෙත් අරින්න. වැඩේ හරි!

🚀 5. Mega Projects: අනුන්ගේ කෝඩ් වලින් අපි මැජික් කරමු!

දැන් අපි ඉගෙන ගත්ත දේවල් පාවිච්චි කරලා, පේළි 10කට වඩා අඩු කෝඩ් වලින් මාරම දේවල් කරන Projects 3ක් හදමු.

🤖 Project 1: කතා කරන රොබෝ (Text-to-Speech)

අපි Type කරන ඕනෑම ඉංග්‍රීසි වාක්‍යයක්, පරිගණකය ලවා කියවමු. මේකට අපි පාවිච්චි කරන්නේ pyttsx3 කියන Library එක.

Step 1: මුලින්ම CMD එකේ මේක ගහලා Install කරගන්න.

pip install pyttsx3

Step 2: මේ කෝඩ් එක VS Code එකේ ගහලා Run කරන්න.

import pyttsx3 # අපි දාගත්ත අලුත් ලයිබ්‍රරි එක ගෙන්න ගමු # 1. Voice Engine එක පණ ගන්වන්න (Initialize) engine = pyttsx3.init() # (Optional) කටහඬේ වේගය අඩු කරන්න (සාමාන්‍යයෙන් 200ක් විතර තියෙන්නේ) engine.setProperty('rate', 150) print("🤖 Robo Speaker is Ready! (Type 'exit' to stop)") # දිගටම වැඩසටහන දුවන්න While Loop එකක් දාමු while True: text = input("ඔයාට කියවන්න ඕන දේ Type කරන්න: ") if text.lower() == "exit": engine.say("Good Bye my friend! Have a nice day.") engine.runAndWait() break # 2. කතා කරවන්න engine.say(text) # 3. කියනකම් ඉන්න (මේ පේළිය නැත්නම් සද්දේ එන්නේ නෑ!) engine.runAndWait()

📶 Project 2: අන්තර්ජාලයේ වේගය මනින Speed Tester එකක්

ඔයාගේ ගෙදර Internet Speed එක බලන්න බ්‍රව්සර් එකට යන්න ඕනේ නෑ. අපි පයිතන් වලින්ම Speed Test එකක් හදමු! මේකට speedtest-cli කියන Library එක ඕනේ.

Step 1: Install කරගන්න.

pip install speedtest-cli

Step 2: Code එක Run කරන්න. (ටික වෙලාවක් යයි Result එක එන්න).

import speedtest print("සර්වර් එකට සම්බන්ධ වෙමින් පවතී... කරුණාකර රැඳී සිටින්න ⏳") # Speedtest ඔබ්ජෙක්ට් එකක් හදාගමු st = speedtest.Speedtest() # Download සහ Upload වේගය ලබා ගැනීම (මේවා එන්නේ Bits/s වලින්) download_speed = st.download() upload_speed = st.upload() # Bits/s අගය Megabits (Mbps) වලට හරවා ගැනීම (1,000,000 න් බෙදීම) dl_mbps = download_speed / 1000000 up_mbps = upload_speed / 1000000 print("=" * 30) print(f"⬇️ Download Speed: {dl_mbps:.2f} Mbps") print(f"⬆️ Upload Speed: {up_mbps:.2f} Mbps") print("=" * 30)

📱 Project 3: තමන්ගේම QR Code එකක් හදමු

ඔයාගේ ෆේස්බුක් එකට, යූටියුබ් චැනල් එකට, නැත්නම් බිස්නස් කාඩ් එකට දාන්න QR Code එකක් කෝඩ් පේළි 3කින් හදමු! මේකට qrcode කියන Library එක ඕනේ.

Step 1: Install කරගන්න.

pip install qrcode[pil]

Step 2: Code එක Run කරන්න.

import qrcode # 1. ඔයාට QR එකට දාන්න ඕන ලින්ක් එක හෝ ටෙක්ස්ට් එක data = "https://www.youtube.com/@KPTechGear" # 2. QR කෝඩ් එක නිර්මාණය කිරීම img = qrcode.make(data) # 3. රූපය පරිගණකයේ සේව් කිරීම (.png විදියට) img.save("my_youtube_qr.png") print("✅ QR Code එක සාර්ථකව නිර්මාණය විය! ෆෝල්ඩරය පරීක්ෂා කරන්න.")

🏁 අවසාන වශයෙන්...

දැන් ඔයාට හොඳටම තේරෙනවා ඇති Python කියන්නේ ඇයි මෙච්චර බලවත්, ඒ වගේම ලෝකයේ අංක 1 ක්‍රමලේඛන භාෂාව වෙලා තියෙන්නේ කියලා. අපිට අමාරු Algorithms මුල ඉඳන් ලිය ලිය කාලය කන්න ඕනේ නෑ. අද අපි කරපු Text-to-Speech එකක් C++ වගේ භාෂාවකින් මුල ඉඳන් ලියනවා නම් කෝඩ් පේළි දහස් ගාණක් ලියන්න වෙනවා. හැබැයි Python වල pip install pyttsx3 කියලා ගහලා, පේළි 5කින් අපි ඒ මැජික් එක කළා!

හැබැයි මතක තියාගන්න, අනුන්ගේ කෝඩ් පාවිච්චි කළාට කමක් නෑ, ඒ කෝඩ් එකෙන් මොකක්ද වෙන්නේ, ඒකේ Documentations කියවලා තේරුම් ගන්න තරමට ඔයාගේ මූලික දැනුම (Logic) ශක්තිමත් වෙන්න ඕනේ. ඒ නිසා දිගටම Practice කරන්න.

ඊළඟ කොටසින්: පයිතන් හරහා අපේ පරිගණකයේ File හදන හැටි, කියවන හැටි සහ මකන හැටි (File Handling) 📂📝 අපි ඉගෙන ගමු.

අද ලිපිය ගැන ඔයාගේ අදහස කමෙන්ට් කරන්න අමතක කරන්න එපා. දිගටම KP Tech Gear සමඟ රැඳී සිටින්න! ජය වේවා! 👇

Author

About

Tech enthusiast, Python/Java Developer, and Gamer. Sharing knowledge about coding and modern technology.

Discussion