Why you shouldn't invoke setup.py directly
TL;DR: The setuptools team no longer wants to be in the business of providing a command line interface and is actively working to become just a library for building packages. What you should do instead depends on your use case, but if you want some basic rules of thumb, there is a table in the summary section. This does not mean that setuptools itself is deprecated, or that using setup.py to configure your package builds is going to be removed. The only thing you must stop doing is directly executing the setup.py file — instead delegate that to purpose-built or standards-based tools, preferably those that work with any build backend. For a long time, setuptools and distutils were the only game in town when it came to creating Python packages, and both of these provided a simple enough interface: you write a setup.py file that invokes the setup() method, you get a Makefile-like interface exposed by invoking python setup.py . So, for example, to build a source distribution, you
Why you shouldn't invoke setup.py directly TL;DR : The setuptools team no longer wants to be in the business of providing a command line interface and is actively working to become just a library for building packages. What you should do instead depends on your use case, but if you want some basic rules of thumb, there is a table in the summary section . This does not mean that setuptools itself is deprecated, or that using setup.py to configure your package builds is going to be removed. The only thing you must stop doing is directly executing the setup.py file — instead delegate that to purp
related reading
- The Architecture of Open Source Applications (Volume 1)Python Packagingaosabook.org
- 2. Writing the Setup Script — Python 3.11.15 documentationdocs.python.org
- Niels Cautaerts - Python dependency management is a dumpster firenielscautaerts.xyz
- Building a Python Appstevedower.id.au
- uvdocs.astral.sh
- Do not use requirements.txt - quanttypequanttype.net
- A farewell to the Berkeley Institute for Data Science - njs blogvorpus.org
- Mediumitnext.io
- uv: An In-Depth Guide to Python's Fast and Ambitious New Package Managersaaspegasus.com
- Command Line Interface Guidelinesclig.dev
- uv: An extremely Fast Python Package Manager :: Jane Streetjanestreet.com
- How uv got so fast | Andrew Nesbittnesbitt.io