# 29. Software Packaging and Distribution

These libraries help you with publishing and installing Python software. While these modules are designed to work in conjunction with the Python Package Index, they can also be used with a local index server, or without any index server at all.

- 29.1. `distutils` — Building and installing Python modules
- 29.2. `ensurepip` — Bootstrapping the `pip` installer
  - 29.2.1. Command line interface
  - 29.2.2. Module API
- 29.3. `venv` — Creation of virtual environments
  - 29.3.1. Creating virtual environments
  - 29.3.2. API
  - 29.3.3. An example of extending `EnvBuilder`
- 29.4. `zipapp` — Manage executable python zip archives
  - 29.4.1. Basic Example
  - 29.4.2. Command-Line Interface
  - 29.4.3. Python API
  - 29.4.4. Examples
  - 29.4.5. Specifying the Interpreter
  - 29.4.6. Creating Standalone Applications with zipapp
    - 29.4.6.1. Making a Windows executable
    - 29.4.6.2. Caveats
  - 29.4.7. The Python Zip Application Archive Format