Skip to main content

পাইথনে মডিউল এবং প্যাকেজ কিভাবে কাজ করে ?

পাইথন মডিউল এবং প্যাকেজ

আজকে আমরা পাইথনের মডিউল ও প্যাকেজ সম্পর্কে জানার চেষ্টা করব । এবং এগুলো কিভাবে কাজ করে সেটা দেখব । আরও জানবো পাইথন কিভাবে তার মডিউল কে খুঁজে বের করে ।

মডিউল কি ?

যেকোনো সিঙ্গেল পাইথন ফাইল কে বলা হয় মডিউল । আমরা যেকোনো পাইথন ফাইল যেটা .py দিয়ে শেষ হয় সেটাকে আমরা যেকোনো পাইথন স্ক্রিপ্ট থেকে import করতে পারি । অনেক বড় প্রোগ্রাম কে ছোট ছোট অংশে ভাগ করার জন্য মডিউল আমাদের কে সাহায্য করে ।
মনে করি আমাদের arithmatic.py নামে একটা পাইথন ফাইল আছে । ফাইলটি আপনি এখন যে ডিরেক্টরিরে আছে সেই ডিরেক্টরিতেই থাকতে হবে । এবং এটার মধ্যে নিচের জিনিসগুলো আছে ।

এখন আমি যদি একই ডিরেক্টরিতে থাকি তবে এই arithmatic.py ফাইল কে নিচের মত করে import করতে পারব । এবং এর ফাংশন ও ভারিয়েবল কে ব্যবহার করতে পারব ।

প্যাকেজ কি ?

উপরে আমরা দেখলাম যে আমরা যদি কোন মডিউল কে অন্য একটা মডিউল থেকে import করতে চাই তবে মডিউল গুলো কে একই ডিরেক্টরিতে রাখতে হয় । এটা একটা সমস্যা । এই সমস্যা দূর করার জন্যই মূলত পাকেজিং সিস্টেম । এর মাধ্যমে আমরা আমাদের লেখা বিভিন্ন পাইথন মডিউল কে ভিন্ন ভিন্ন ডিরেক্টরির আন্ডারে রাখতে পারি । এবং সেগুলোকে আমাদের প্রয়োজন অনুসারে import করতে পারব ।

রিয়েল লাইফ সফটওয়্যারে আমারা দেখি যে বিভিন্ন .py ফাইল ভিন্ন ভিন্ন ডিরেক্টরিতে থাকে এবং সবগুলো জিনস আবার একটা রুট ডিরেক্টরিতে থাকে । আমাদের প্যাকেজ যদি ইন্সটল করা থাকে তবে আমরা যেকোনো জায়গা থেকে এটাকে import করতে পারি ।

প্যাকেজের সংজ্ঞা এইভাবে দেয়া যেতে পারে,
প্যাকেজ হল একটা ডিরেক্টরি যেটা থেকে আমরা পাইথন মডিউল import করতে পারি ।

প্যাকেজ কিভবে তৈরি করা যায় ?

আগেই বলেছি প্যাকেজ হল এটা ডিরেক্টরি / ফোল্ডার । সুতরাং প্যাকেজ বানাতে হলে প্রথমে আপানকে একটা ডিরেক্টরি / ফোল্ডার বানাতে হবে । মনে করি আমরা gonit নামে একটা ডিরেক্টরি তৈরি করেছি । এখন পাইথন কে বোঝাতে হবে যে আমরা যে ডিরেক্টরি তৈরি করেছি সেটা কোন সাধারণ ডিরেক্টরি না এটা একটা পাইথন প্যাকেজ । এটা বোঝানোর জন্য আমাদের কে ওই gonit ডিরেক্টরি তে init.py নামে একটা ফাইল তৈরি করতে হবে ( এটা ফাঁকাও থাকতে পারে ) । নিচে একটা ডিরেক্টরির গঠন নিচে দেখানো হল ।
gonit/
        __init__.py
        arithmatic.py

পাকজে ও মডিউল থেকে import করা

আমরা যদি উপরেই নিয়মে যদি প্যাকেজ বানায়ে থাকি তবে আমরা অনন্য প্যাকেজ যেভাবে import করে সেভাবেই import করতে পারব । আমদের বানানো প্যাকেজের জন্য import stement গুলো এই রকম হবে ।

পাইথন কিভাবে মডিউল ও প্যাকেজ কে খুঁজে বের করে ?

আমরা যখন কোন পাইথনের মডিউল বা প্যাকেজ কে import করি তখন পাইথন কে একটা বিষয় অবশ্যই জানতে হবে যে, পাইথন যে মডিউল বা প্যাকেজ কে import করতে চাচ্ছে সেটাকে সে কথাই খুঁজবে । বিশেষ কিছু ডিরেক্টরি আছে কোন কিছু import করলে পাইথন সেই বিশেষ ডিরেক্টরিতে মডিউল বা প্যাকেজ খুজতে থাকে । সেই বিশেষ ডিরেক্টরি গুলো হল,
  • The current directory.
  • The site-packages folder যেখানে আপনার পাইথন ইন্সটল করা আছে ।
  • In directories in the PYTHONPATH environment variable.
আপনার পাইথন কোন প্যাকেজ বা মডিউল import করলে সেটা কোন কোন ডিরেক্টরি সার্চ করে সেটা দেখার জন্য নিচের কাজ টি করতে পারেন । আমার জন্য এই রকম অউটপুট আসে । আপনার জন্য অন্য রকম আসতে পারে ।

আজকে পর্যন্তই । এতক্ষণ কষ্ট করে পড়ার জন্য ধন্যবাদ :

Comments

Popular posts from this blog

উবুন্টুতে রুট পাসওয়ার্ড ভুলে তা রিকভার করার উপায় ।

যদি কেউ রুট পাসওয়ার্ড ভুলে যান তাহলে নিচের কাজ গুলো করে নতুন পাসওয়ার্ড সেট করতে পারবেন: প্রথমে পিসি রিস্টার্ট দিন । দিয়ে UP/DOWN করে kernel version সিলেক্ট করে e চাপুন । ব্ল্যাক Screen আসবে এবার একটা Space দিয়ে লিখুন “Single” [ Enter ] এরপর b চাপুন ফলাফল : লিনাক্সের Single user Mood এ চলে আসছেন । এখন লিখুন passwd root [ Enter ] এখন নতুন পাসওয়ার্ড খানা টাইপ করেন [ এন্টার ] আবার টাইপ করেন [ এন্টার ] কাজ শেষ , এবার reboot টাইপ করেন । এখন নতুন পাসওয়ার্ড দিয়ে লগইন করেন। পুনশ্চ : যদি আপনার উইন্ডোজ এর সাথে ডুয়েল বুট করা থাকে তবে এই প্রক্রিয়া কাজ করবে না ।

Eclipse এ PyDev অফলাইনে কিভাবে ইন্সটল করা যায় ?

আমরা যদি Eclipse এ পাইথন ডেভেলপ করতে চাই তবে আমাদের PyDev ইন্সটল প্লাগিন ইন্সটল করা থাকতে হবে । PyDev ইন্সটল করার সবথেকে সহজে উপায় হল Eclipse এর Install New Software অপশন ব্যবহার করে ইন্সটল করা । কিন্তু এইটা মাঝে মাঝে সমস্যা হয় । কাজ করে না । এই জন্য আমরা PyDev প্লাগিন ম্যানুয়ালি ইন্সটল করতে পারব । এবং এটা করার জন্য আমরা যেটা করতে পারি সেটা হল : এই প্লাগিনের সর্বশেষ জিপ ভার্সন টি ডাউনলোড করুন  এখান থেকে জিপ ফাইল টি আনজিপ করুন । আনজিপ করলে আমরা features ও plugins নামে ২ ফাইল পাব  । এই ফাইল ২ টি কপি করে আমরা Eclipse সফটওয়্যারের dropins ফোল্ডারে পেস্ট করে দিব । এখন আমাদের Eclipse যদি চালু করা থাকে তবে Eclipse রিস্টার্ট দিব ।  আমাদের ইন্সটল ঠিক ভাবে হয়েছে কি না সেটা দেখার জন্য আমরা Window -> Preferences এ গিয়ে দেখব PyDev আছে কি না । যদি থাকে তবে এখন আপনি Eclipse এ পাইথনের জন্য কোড লিখতে পারবেন । ধন্যবাদ :)

[ UVa ] 10048 - Audiophobia

আমাকে কোন একটা শহরের একটা জায়গা থেকে অন্য একটা জায়গায় যেতে হবে । আমি বিভিন্ন রাস্তা ব্যাবহার করে আমার  কাঙ্ক্ষিত জায়গায় যেতে পারি । কিন্তু আমাকে এমন রাস্তা ব্যাবহার করে যেতে হবে যে রাস্তা দিয়ে গেলে আমাকে সবথেকে কম decibels এর শব্দ শুনতে হবে ।   এই সমস্যা টি সমাধান করার জন্য আমাদের কে  গ্রাফের ইনফরমেশন দেয়া হবে সেগুলো নিয়ে একটা Minimum Spanning Tree বানাতে হবে ।  এখন এই MST র উপর query করতে হলে আমাদের কে DFS/BFS চালাতে হবে ।  এইখান থেকে আমরা যে একটা নোড থেকে অন্য একটা নোডে যাওয়ার রাস্তা পাব তার মধ্যে খুজে দেখব কোন এজের ওয়েট সবথেকে বেশি । সেটাই আমাদের কে প্রিন্ট করেত হবে ।  যদি কোন রাস্তা না থাকে তবে no path প্রিন্ট করতে হবে ।  কোড : হ্যাপি কোডিং :)