In [[Python]], the notion of a package is the unit of a folder containing different scripts with a semantic relation (that is, their task is somewhat related). A package can be imported and used in code, as long as it is visible from the package root by location or by the Python installation or [[Python Environment|environment]].
Packages used to need a `__init__.py` file at root and in each of the sub-packages. Since Python 3.3, only the top package needs this file and subsequent folders are understood as implicit namespaces packages.
The best option for packaging is probably [[Poetry]], an all-in-one tool that defines not only packaging but also dependencies and environments for local development. Lately, [[uv]] has entered the competition by providing [[pip]] compatibility.
The main package repository is [[PyPI]], although other repositories can be added to most package managers.