Kaynağa Gözat

fix(installer): bootstrap setuptools + wheel into embedded Python

  get-pip.py installs only pip itself; the embedded Python distribution
  ships without setuptools or wheel. pip needs setuptools.build_meta as
  the PEP 517 build backend for any sdist-only package — Bambuddy's
  requirements.txt hits this on pyftpdlib 2.2.0 (sdist-only on PyPI).
  Install both right after the pip bootstrap so requirements.txt installs
  cleanly.
maziggy 2 ay önce
ebeveyn
işleme
1b502c359f
1 değiştirilmiş dosya ile 20 ekleme ve 0 silme
  1. 20 0
      installers/windows/build.py

+ 20 - 0
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