เพื่อทำความเข้าใจแพ็คเกจ คุณต้องรู้เกี่ยวกับโมดูลด้วย ไฟล์ Python ใดๆ ก็ตามที่เป็นโมดูล ชื่อของมันคือชื่อฐานของไฟล์/คุณสมบัติ __name__ ของโมดูลที่ไม่มีนามสกุล .py แพ็คเกจคือคอลเลกชั่นของโมดูล Python กล่าวคือ แพ็คเกจคือไดเร็กทอรีของโมดูล Python ที่มีไฟล์ __init__.py เพิ่มเติม __init__.py แยกแพ็กเกจออกจากไดเร็กทอรีที่มีสคริปต์ Python จำนวนมาก แพ็คเกจสามารถซ้อนได้ในระดับความลึกใดก็ได้ โดยที่ไดเร็กทอรีที่เกี่ยวข้องมีไฟล์ __init__.py ของตัวเอง
เมื่อคุณนำเข้าโมดูลหรือแพ็คเกจ อ็อบเจ็กต์ที่เกี่ยวข้องที่สร้างโดย Python จะเป็นประเภทโมดูลเสมอ ซึ่งหมายความว่าความแตกต่างระหว่างโมดูลและแพ็คเกจอยู่ที่ระดับระบบไฟล์เท่านั้น อย่างไรก็ตาม โปรดทราบว่า เมื่อคุณนำเข้าแพ็คเกจ จะมองเห็นเฉพาะตัวแปร/ฟังก์ชั่น/คลาสในไฟล์ __init__.py ของแพ็คเกจนั้นโดยตรง ไม่เห็นเฉพาะแพ็คเกจย่อยหรือโมดูล
ตัวอย่างเช่น ในโมดูล DateTime มีโมดูลย่อยที่เรียกว่า date เมื่อคุณนำเข้า DateTime จะไม่มีการนำเข้า คุณจะต้องนำเข้าแยกต่างหาก
>>> 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)