= Software package
A <software package> is a unit of <software> distribution or installation, typically containing code, associated <files> and metadata describing its identity, version and <software dependencies>. It may contain an application, several <software libraries> or supporting data. The exact packaging format determines which metadata and installation operations are available.
For example, installing a numerical application can also require installing a compatible array <software library>. Pip reads requirements from Python distribution <files> and uses <dependency resolution> to choose compatible versions.<Dependency Resolution in the pip documentation>[How it works, distribution files and recursively discovered requirements]{ref} One distribution unit need not correspond to one importable module. Distinguishing the shipped artifact from the names imported by code avoids assuming that every import name is also an installable package name.
Back to article page