Skip to content

pip is affected by wheel stripping PEP-508 markers #4614

Closed
@tlandschoff-scale

Description

@tlandschoff-scale
  • Pip version: 9.0.1
  • Python version: 2.7.12
  • Operating system: Ubuntu 16.04 Xenial

Description:

Installing the attached package (actually via a private devpi repository) using pip works on the first attempt but fails on the second. This is actually a bug in wheel that we misattributed to pip. However, as only pip is called I think it inherits this bug and it should be tracked here.

What I've run:

The first installation (from local file as well as from devpi repository) works fine:

~$ pip install issue-env-markers-wheel-17.10.tar.gz 
Processing ./issue-env-markers-wheel-17.10.tar.gz
  Ignoring non-existing-package: markers 'platform_system == "Windows"' don't match your environment
Building wheels for collected packages: issue-env-markers-wheel
  Running setup.py bdist_wheel for issue-env-markers-wheel ... done
  Stored in directory: /home/torsten.landschoff/.cache/pip/wheels/27/f4/87/4d28e50c1e0bf504953031a4390c64c797afb9e53b18e6ec76
Successfully built issue-env-markers-wheel
Installing collected packages: issue-env-markers-wheel
Successfully installed issue-env-markers-wheel-17.10

But pip will automatically use the wheel that it generated itself (using python setup.py bdist_wheel) and this will fail:

~$ pip install -I ~/.cache/pip/wheels/27/f4/87/4d28e50c1e0bf504953031a4390c64c797afb9e53b18e6ec76/issue_env_markers_wheel-17.10-cp27-none-any.whl 
Processing ./.cache/pip/wheels/27/f4/87/4d28e50c1e0bf504953031a4390c64c797afb9e53b18e6ec76/issue_env_markers_wheel-17.10-cp27-none-any.whl
Collecting non-existing-package (from issue-env-markers-wheel==17.10)
  Could not find a version that satisfies the requirement non-existing-package (from issue-env-markers-wheel==17.10) (from versions: )
No matching distribution found for non-existing-package (from issue-env-markers-wheel==17.10)

The mean thing here is that it appears that pip does something wrong when caching the builds. We mistraced this at first, dropping the pip cache on our build machines as it seemed to repair this.

The next build of course failed again after one build reintroduced the package into the wheel cache.

Here is the example package I used for reproducing:

issue-env-markers-wheel-17.10.tar.gz

Upstream bug report:

The underlying problem appears to be in the wheel package:

https://bitbucket.org/pypa/wheel/issues/181/bdist_wheel-silently-discards-pep-508#comment-38120755

I think it is worthwhile to have this ticket here as a reminder and a link because wheel is much less visible than pip and I actually spent half an hour for tracing this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C: cacheDealing with cache and files in itauto-lockedOutdated issues that have been locked by automationtype: bugA confirmed bug or unintended behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions