It would be nice if pip were able to install setuptools from GitHub main branch. Instead, if one attempts to pip install, an error about the bootstrap script is emitted:
~ $ pip install git+https://github.com/pypa/setuptools
Collecting git+https://github.com/pypa/setuptools
Cloning https://github.com/pypa/setuptools to /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-req-build-j6hkzir0
Installing build dependencies ... done
Missing build requirements in pyproject.toml for git+https://github.com/pypa/setuptools.
The project does not specify a build backend, and pip cannot fall back to setuptools without 'setuptools>=38.2.5'.
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-req-build-j6hkzir0/setup.py", line 193, in <module>
require_metadata()
File "/private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-req-build-j6hkzir0/setup.py", line 24, in require_metadata
raise RuntimeError(msg)
RuntimeError: Cannot build setuptools without metadata. Run `bootstrap.py`.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/c6/v7hnmq453xb6p2dbz1gqc6rr0000gn/T/pip-req-build-j6hkzir0/
I'm wondering if there's a solution to this limitation. I can imagine a few:
- setuptools could wait for and rely on PEP 517 support and provide its own "installer" (itself) that does the bootstrapping.
- pip could special-case the installation of anything that looks like setuptools and run bootstrap.py before installing.
- setuptools could materialize the metadata (egg-info) to the repo, avoiding the need to bootstrap (but requiring special handling of that metadata which is derived from other files in the repo).
- setuptools could inject a hack to bootstrap and relaunch (this hack might interfere or interact badly with pip's injection of setuptools).
There are probably others. Only the first option seems (somewhat) clean.
It would be nice if pip were able to install setuptools from GitHub main branch. Instead, if one attempts to pip install, an error about the bootstrap script is emitted:
I'm wondering if there's a solution to this limitation. I can imagine a few:
There are probably others. Only the first option seems (somewhat) clean.