Skip to main content

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

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

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

মডিউল কি ?

যেকোনো সিঙ্গেল পাইথন ফাইল কে বলা হয় মডিউল । আমরা যেকোনো পাইথন ফাইল যেটা .py দিয়ে শেষ হয় সেটাকে আমরা যেকোনো পাইথন স্ক্রিপ্ট থেকে import করতে পারি । অনেক বড় প্রোগ্রাম কে ছোট ছোট অংশে ভাগ করার জন্য মডিউল আমাদের কে সাহায্য করে ।
মনে করি আমাদের arithmatic.py নামে একটা পাইথন ফাইল আছে । ফাইলটি আপনি এখন যে ডিরেক্টরিরে আছে সেই ডিরেক্টরিতেই থাকতে হবে । এবং এটার মধ্যে নিচের জিনিসগুলো আছে ।
# create a file say arithmatic.py in the same directory
# arithmatic.py file contains
OPERATIONS = ['Add', 'Sub']
def add(a, b):
return a + b
def sub(a, b):
return a - b
view raw arithmatic.py hosted with ❤ by GitHub

এখন আমি যদি একই ডিরেক্টরিতে থাকি তবে এই 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 করলে সেটা কোন কোন ডিরেক্টরি সার্চ করে সেটা দেখার জন্য নিচের কাজ টি করতে পারেন । আমার জন্য এই রকম অউটপুট আসে । আপনার জন্য অন্য রকম আসতে পারে ।
import sys
for path in sys.path:
print("Path is: ", path)
Path is:
Path is: /home/menon/anaconda3/lib/python35.zip
Path is: /home/menon/anaconda3/lib/python3.5
Path is: /home/menon/anaconda3/lib/python3.5/plat-linux
Path is: /home/menon/anaconda3/lib/python3.5/lib-dynload
Path is: /home/menon/anaconda3/lib/python3.5/site-packages
Path is: /home/menon/anaconda3/lib/python3.5/site-packages/Sphinx-1.5.1-py3.5.egg
Path is: /home/menon/anaconda3/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg
Path is: /home/menon/anaconda3/lib/python3.5/site-packages/tflearn-0.3.2-py3.5.egg
Path is: /home/menon/anaconda3/lib/python3.5/site-packages/IPython/extensions
Path is: /home/menon/.ipython
view raw arithmatic.py hosted with ❤ by GitHub

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

Comments

Popular posts from this blog

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

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

Fix The BIOS in this system is not fully ACPI compliant in Windows 7

এই সমস্যা সমাধান করার জন্য আপনি নিচের ধাপ গুলো অনুসরণ করুন। ধাপ ১ :  আপানর  কম্পিউটার এ উইন্ডোজ এর ডিস্ক থেকে বুট করুন । নীচের মত উইন্ডো আসলে Shift + F10 চাপুন । এর ফলে কমান্ড প্রম্প্ট ওপেন হবে। ধাপ ২ : এখন CMD তে নিচের কমান্ড গুলি ধারবাহিক ভাবে লিখুন C: bootrec /FixMbr bootrec /FixBoot bootrec /RebuildBcd exit  এখানে  C হলো যে ড্রাইভ এ উইন্ডোজ দেয়া আছে।  আপনার যদি অন্য কোনো ড্রাইভ ( D, E, F, ..... ) এ উইন্ডোজ দেয়া থাকে তবে আপনাকে C এর জায়গায় সেই ড্রাইভ এর নাম লিখতে হবে।  উপরের সব কমান্ড যদি সঠিক ভাবে বিল্ড হয় তবে আপনি আপনার কম্পিউটার রিস্টার্ট দিন।  দেখবেন আপনার সমস্যা সমাধান হয়ে গেছে :D