-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PEP 517 and build isolation are disabled in Gradle plugin pip #715
Comments
We also use the Again, I'm not aware of any significant packages which fail because of this option, because any package which is modern enough to have a pyproject.toml file is probably also modern enough to be releasing wheels. Since pip implements build isolation by calling itself in a subprocess in the new environment, we'll probably encounter the same ZIP-related error as above. It's also likely that projects will request a specific version of setuptools to give them a more reproducible build. So if we enable build isolation in the future, providing a pre-patched copy of setuptools wouldn't be good enough anymore: we'd need to monkey-patch it at runtime with the same PYTHONPATH and
|
This could probably be fixed by unpacking the ZIP before running pip. This will add a small delay to the first build of each project, but it shouldn't be too bad. On Windows there may be a risk of exceeding the filename length limit, but we've already encountered and worked around a similar limit in zipimport, so we'll probably get away with it. |
We're currently using pip 19.2.3, which has full PEP 517 support. But it currently fails with an error similar to pypa/pip#9953, apparently caused by pip being unable to find its own modules within a ZIP:
If we add
--no-use-pep517
, we instead get:So I've added
--no-use-pep517
to the default options, because it gives a clearer error message. And I've patched pip/_internal/pyproject.py so it falls back on setup.py even if a pyproject.toml file is present.Of the top 1000 packages on PyPI, the only ones which currently fail because of this are:
They now produce the following message:
I've had no requests for either of these packages yet, so this isn't urgent. There may also be other packages which use alternative build systems, but as long as they provide compatible wheels, that wouldn't affect us in this context.
The text was updated successfully, but these errors were encountered: