I'm learning about Python packaging, and according to this guide, the command to build a python distribution package seems to be python3 -m build.
But I aslo found that there is a command line interface for setup.py file from setuptools:
$ python setup.py --help-commands
Standard commands:
build build everything needed to install
sdist create a source distribution (tarball, zip file, etc.)
bdist create a built (binary) distribution
bdist_dumb create a "dumb" built distribution
bdist_rpm create an RPM distribution
...
It seems that python setup.py build, sdist or bdist can aslo build distribution, but I didn't find detailed intructions for these commands, the setuptools command reference lacks explanation for build sdist bdist.
So I'm a bit confused, what is the difference between python setup.py build and python -m build, or between python setup.py sdist and python -m build --sdist? Is the python setup.py command deprecated hence the lack of full documentation? When should I use python -m build or python setup.py build?
Any help would be appreciated.
Update:
The doc of build module says “build is roughly the equivalent of setup.py sdist bdist_wheel but with PEP 517 support, allowing use with projects that don’t use setuptools”.
So should I always prefer build module rather than running python setup.py manually?. Is there still a use-case for setup.py build?
python setup.pyruns the file.python -m builduses thebuildmodule (which may in-turn read a setup.py file, if it exists)setup.py sdist bdist_wheelbut with PEP 517 support, allowing use with projects that don’t use setuptools. So should I always prefer build module rather than runningpython setup.pymanually? Is there still a use-case forsetup.py build?