Um módulo Python é simplesmente um arquivo fonte do Python, que pode expor classes, funções e variáveis globais.
Quando importado de outro arquivo de origem Python, o nome do arquivo é tratado como um namespace.
Um pacote Python é simplesmente um diretório de módulo (s) Python.
Por exemplo, imagine a seguinte árvore de diretórios em /usr/lib/python/site-packages
:
mypackage/__init__.py <-- this is what tells Python to treat this directory as a package
mypackage/mymodule.py
Então você faria:
import mypackage.mymodule
ou
from mypackage.mymodule import myclass