diff --git a/installers/windows/build.py b/installers/windows/build.py index f0a17583d..6e23ed969 100644 --- a/installers/windows/build.py +++ b/installers/windows/build.py @@ -116,6 +116,26 @@ def stage_embedded_python() -> Path: check=True, ) + # Install setuptools + wheel. The embedded distribution ships without + # them, and get-pip.py installs only pip — but pip needs + # ``setuptools.build_meta`` (PEP 517 backend) to build any source-only + # package. Bambuddy's requirements.txt hits this with pyftpdlib 2.2.0 + # which is sdist-only on PyPI; other source-only packages would fail + # the same way without this step. + log("installing setuptools + wheel for PEP 517 builds") + subprocess.run( + [ + str(target / "python.exe"), + "-m", + "pip", + "install", + "--no-warn-script-location", + "setuptools", + "wheel", + ], + check=True, + ) + return target