Developing under PEP 517 with TestPyPI causes problems

When getting myself acquainted with PEP 517, build isolation and pyproject.toml, I discovered an issue when testing package deployment on TestPyPI, as described in this tutorial.

In short, installing a 517-style package via TestPyPI fails with an error stating that “setuptools” is not available: ERROR: No matching distribution found for setuptools

The reason for this error, so I was told, is that TestPyPI is not able to provide the dependencies for the build system (in my case setuptools and wheel), because TestPyPI is not maintained as complete package repository. (Details: pypa/pip#9242 and setuptools/2521)

@uranusjr suggested to work around this problem by using:

pip wheel setuptools wheel -w ./wheels
pip install --find-links ./wheels \
            --index-url \
rm -r ./wheels

I don’t know how common it is to use TestPyPI before rolling out new packages, but 517-style packages are currently not supported well. Updating the above mentioned tutorial about this is a minimal fix, but this issue might deserve some broader discussion.

What are your thoughts about this?

# pyproject.toml
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
# Upload
twine upload --repository testpypi dist/*
# Command causing the above problem
pip install --index-url \
            --no-deps my-fancy-package
1 Like

Maybe file a bug here: Issues · pypa/ · GitHub … at least for the part about updating the tutorial.