mitsuhiko / platter

A useful helper for wheel deployments.
Other
335 stars 52 forks source link

-p pypy doesn’t find wheels #10

Closed hynek closed 2 years ago

hynek commented 9 years ago

Building the same package using CPython works, while PyP complains, that it can’t find its wheels:

PyPy

[trusty.build] run: dist/internal_dns-0-linux-x86_64/install.sh -p pypy /vrmd/internaldns
[trusty.build] out: Setting up virtualenv
[trusty.build] out: New pypy executable in /vrmd/internaldns/bin/pypy
[trusty.build] out: Installing setuptools, pip...done.
[trusty.build] out: Installing internal_dns-0
[trusty.build] out: Ignoring indexes: https://pypi/root/vrmd/+simple/
[trusty.build] out: Collecting wheel
[trusty.build] out: Collecting internal-dns
[trusty.build] out: Collecting PyYAML==3.11 (from internal-dns)
[trusty.build] out:   Could not find any downloads that satisfy the requirement PyYAML==3.11 (from internal-dns)
[trusty.build] out:   No distributions at all found for PyYAML==3.11 (from internal-dns)
[trusty.build] out: Done.

CPython

[trusty.build] run: dist/internal_dns-0-linux-x86_64/install.sh -p python2.7 /vrmd/internaldns
[trusty.build] out: Setting up virtualenv
[trusty.build] out: New python executable in /vrmd/internaldns/bin/python2.7
[trusty.build] out: Also creating executable in /vrmd/internaldns/bin/python
[trusty.build] out: Installing setuptools, pip...done.
[trusty.build] out: Installing internal_dns-0
[trusty.build] out: Ignoring indexes: https://pypi/root/vrmd/+simple/
[trusty.build] out: Collecting wheel
[trusty.build] out: Collecting internal-dns
[trusty.build] out: Collecting structlog==15.0.0 (from internal-dns)
[trusty.build] out: Collecting zope.interface==4.1.2 (from internal-dns)
[trusty.build] out: Collecting Twisted==15.0.0 (from internal-dns)
[trusty.build] out: Collecting PyYAML==3.11 (from internal-dns)
[trusty.build] out: Requirement already satisfied (use --upgrade to upgrade): setuptools in /vrmd/internaldns/lib/python2.7/site-packages (from zope.interface==4.1.2->internal-dns)
[trusty.build] out: Installing collected packages: PyYAML, Twisted, zope.interface, structlog, internal-dns, wheel
[trusty.build] out: Successfully installed PyYAML-3.11 Twisted-15.0.0 internal-dns-0 structlog-15.0.0 wheel-0.24.0 zope.interface-4.1.2
[trusty.build] out: Done.

Everything is identical except for the -p argument to install.sh.

hynek commented 9 years ago

Apparently same problem applies to Python 3.3:

[precise.build] run: dist/ddns-0-linux-x86_64/install.sh -p python3.3 /vrmd/ddns
[precise.build] out: Setting up virtualenv
[precise.build] out: Using base prefix '/usr'
[precise.build] out: New python executable in /vrmd/ddns/bin/python3.3
[precise.build] out: Also creating executable in /vrmd/ddns/bin/python
[precise.build] out: Installing setuptools, pip...done.
[precise.build] out: Installing ddns-0
[precise.build] out: Ignoring indexes: https://pypi/root/vrmd/+simple/
[precise.build] out: Collecting wheel
[precise.build] out: Collecting ddns
[precise.build] out: Collecting repoze.lru==0.6 (from ddns)
[precise.build] out:   Could not find any downloads that satisfy the requirement repoze.lru==0.6 (from ddns)
[precise.build] out:   No distributions at all found for repoze.lru==0.6 (from ddns)
[precise.build] out: Done.
[precise.build] out:

I tried cleaning the cache but it didn’t help.

hynek commented 9 years ago

I’ve dug into this and I think the problems are unrelated. PyPy simply does not work wit wheels that have compiled C code. Which sucks because many packages have optional C code but work without it just fine (e.g. Twisted, PyYAML, …).

As for the Python 3 problem, I could solve it for myself by creating the wheels using pip3 wheel instead of pip wheel (I’ve abandoned platter for a homegrown solution and run into the same problem).

hynek commented 9 years ago

One last update, they seem to be related after all and I just used the wrong pip for PyPy.

The solution to this whole bug is simple: use the correct pip to generate the wheels.

jvsteiner commented 8 years ago

@hynek - could you elaborate? what did you do in order to use the correct pip?

hynek commented 8 years ago

I don’t really remember, I think I did it manually or something. I don't use platter anymore since pip grew most of the features I found useful.