Issue #108 resolved

incorrect wheel on PyPI

minrk
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 reporter

    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