incorrect wheel on PyPI

minrk avatarminrk created an issue

The current wheel on PyPI unconditionally installs an easy_install-3.3 entry point, regardless of the installing Python version. It also strangely installs all entry points only with a .pya suffix, and does not make the entry points executable. The result of pip install --upgrade --use-wheel setuptools is that no setuptools entry points are actually available.

My guess is that the setuptools wheel will not work properly on any Python other than Python 3.3 on Windows, but the wheel's file spec suggests it is appropriate for all Python versions on all platforms.

Comments (5)

  1. Jason R. Coombs

    I believe this is a fundamental design issue with wheels. The way wheels are packaged, they use console scripts as they are created on the build system, not on the target system, and because console scripts are fundamentally platform and environment specific (as indicated by the issues you raised), this one variant would require a wheel for every possible target environment, but even that doesn't seem viable.

    I suspect what needs to happen here is that pip and other wheel installers need to support creating console scripts from metadata. I suspect this support may also require a feature from setuptools to suppress creation of console scripts in builds.

    However, as filed, I don't believe there's anything for setuptools to do here. A pure Python package like setuptools should not require varied wheels, or if it does, there needs to be an infrastructure in place to generate those wheels from source dists.

  2. minrk

    However, as filed, I don't believe there's anything for setuptools to do here.

    No, I don't think there's anything for setuptools to do other than pull the currently broken wheel from PyPI.

  3. Jason R. Coombs

    While the wheel seems broken, it is in fact still viable and does contain the metadata necessary for pip to re-write the scripts. Furthermore, the pip maintainers have explicitly requested that the wheel be published as part of the release process so that issues like these can be identified and corrected for the Python 3.4 and Pip 1.5 releases. Since --use-wheel is currently an opt-in feature, and the default behavior still works, I'm inclined to leave the "broken" wheel in place.

    I will make a note in the change notes that the wheel isn't yet viable with pip 1.4.

  4. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.