I have a package on PyPi and when preparing a new release I build the source distribution, build the wheel and upload, all with setuptools.
However, I've found it only uploads the wheel for the Python version used in the upload command (python
and python3
).
Here are the steps I'm taking:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
According to the Python Packaging User Guide:
"Universal Wheels" are wheels that are pure python (i.e. contains no compiled extensions) and support Python 2 and 3
So that seems to be the right thing for me.
After the wheel build step, I verify the wheel is built and has the filename format PACKAGE-VERSION-py2.py3-none-any.whl
in dist
but when I run the upload with python3 setup.py sdist bdist_wheel upload
, it creates a PACKAGE-VERSION-py3-none-any.whl
and uploads that.
If I run python setup.py sdist bdist_wheel upload
it does the same for and uploads a Python 2-only one.