> For the complete documentation index, see [llms.txt](https://brain.nathanarthur.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://brain.nathanarthur.com/programming-languages/python/package-management-and-distribution.md).

# Package Management & Distribution

[Building and Distributing Packages with Setuptools](https://setuptools.readthedocs.io/en/latest/setuptools.html) #article - "`Setuptools` is a collection of enhancements to the Python `distutils` that allow developers to more easily build and distribute Python packages, especially ones that have dependencies on other packages."

[Flit](https://flit.readthedocs.io/en/latest/) #software - "**Flit** is a simple way to put Python packages and modules on PyPI."

[How to Publish an Open-Source Python Package to PyPI](https://realpython.com/pypi-publish-python-package/) #article - "In this tutorial, you’ll cover how to **upload your own package to PyPI**. While getting your project published is easier than it used to be, there are still a few steps involved." 👍

[pip](https://pip.pypa.io/en/stable/) #software - "pip is the [package installer](https://packaging.python.org/en/latest/current/) for Python. You can use pip to install packages from the [Python Package Index](https://pypi.org/) and other indexes." [PyPA recommended](https://packaging.python.org/guides/tool-recommendations/).

[Pipenv](https://docs.pipenv.org/en/latest/#pipenv-python-dev-workflow-for-humans) #software - "**Pipenv** is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. *...* It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your `Pipfile` as you install/uninstall packages. It also generates the ever-important `Pipfile.lock`, which is used to produce deterministic builds." [PyPA recommended](https://packaging.python.org/guides/tool-recommendations/).

[pipx](https://pipxproject.github.io/pipx/) #software - "Execute binaries from Python packages in isolated environments. ❡ `pipx` is a tool to install and run any of the thousands of Python applications available on PyPI in a safe, convenient, and reliable way. Not all Python packages have entry points, but many do."

[Python Packaging Authority](https://www.pypa.io/en/latest/) - "The Python Packaging Authority (PyPA) is a working group that maintains many of the relevant projects in Python packaging."

[Tool recommendations](https://packaging.python.org/guides/tool-recommendations/) #article - Python Packaging Authority recommendations. "If you’re familiar with Python packaging and installation, and just want to know what tools are currently recommended, then here it is."

[Twine](https://github.com/pypa/twine) - "Twine is [a utility](https://pypi.org/project/twine/) for [publishing](https://packaging.python.org/tutorials/distributing-packages/) Python packages on [PyPI](https://pypi.org/). It provides build system independent uploads of source and binary [distribution artifacts](https://github.com/pypa/twine/blob/master/distributions) for both new and existing [projects](https://packaging.python.org/glossary/#term-project)." [PyPA recommended](https://packaging.python.org/guides/tool-recommendations/).

[wheel](https://wheel.readthedocs.io/en/latest/) - "This library is the reference implementation of the Python wheel packaging standard, as defined in [PEP 427](https://www.python.org/dev/peps/pep-0427/)." [PyPA recommended](https://packaging.python.org/guides/tool-recommendations/).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://brain.nathanarthur.com/programming-languages/python/package-management-and-distribution.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
