যেকোন পাইথন ফাইল একটি মডিউল, এটির নাম হচ্ছে ফাইলের বেস নেম/মডিউলের __name__ প্রপার্টি .py এক্সটেনশন ছাড়া। একটি প্যাকেজ হল পাইথন মডিউলের একটি সংগ্রহ, যেমন, একটি প্যাকেজ হল পাইথন মডিউলের একটি ডিরেক্টরি যাতে একটি অতিরিক্ত __init__.py ফাইল থাকে। __init__.py একটি ডিরেক্টরি থেকে একটি প্যাকেজকে আলাদা করে যেটিতে পাইথন স্ক্রিপ্টের একটি গুচ্ছ থাকে। প্যাকেজগুলিকে যেকোনো গভীরতায় নেস্ট করা যেতে পারে, যদি সংশ্লিষ্ট ডিরেক্টরিতে তাদের নিজস্ব __init__.py ফাইল থাকে।
আপনি যখন একটি মডিউল বা একটি প্যাকেজ আমদানি করেন, পাইথন দ্বারা তৈরি সংশ্লিষ্ট বস্তুটি সর্বদা টাইপ মডিউলের হয়। এর মানে হল যে মডিউল এবং প্যাকেজের মধ্যে পার্থক্য শুধুমাত্র ফাইল সিস্টেম স্তরে। উল্লেখ্য, যাইহোক, আপনি যখন একটি প্যাকেজ আমদানি করেন, শুধুমাত্র প্যাকেজের __init__.py ফাইলের ভেরিয়েবল/ফাংশন/ক্লাসগুলি সরাসরি দৃশ্যমান হয়, সাব-প্যাকেজ বা মডিউল নয়৷
উদাহরণস্বরূপ, ডেটটাইম মডিউলে, তারিখ নামে একটি সাবমডিউল রয়েছে। আপনি যখন তারিখের সময় আমদানি করেন, তখন এটি আমদানি করা হবে না। আপনাকে এটি আলাদাভাবে আমদানি করতে হবে৷
>>> import datetime >>> date.today() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'date' is not defined >>> from datetime import date >>> date.today() datetime.date(2017, 9, 1)