ionelmc/python-lazy-object-proxy

Install fails on pypy3 for versions after 1.4.1

shane-kerr opened this issue · 2 comments

I'm on Ubuntu 20.10 and using the system-provided pypy3 package:

$ dpkg-query --list pypy3
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version             Architecture Description
+++-==============-===================-============-================================================================
ii  pypy3          7.3.1+dfsg-4ubuntu1 amd64        fast alternative implementation of Python 3.x - PyPy interpreter
$ pypy3 --version
Python 3.6.9 (7.3.1+dfsg-4ubuntu1, Sep 17 2020, 15:27:03)
[PyPy 7.3.1 with GCC 10.2.0]

Any version after 1.4.1 fails a pip install with a similar message:

$ pypy3 -m pip install lazy-object-proxy==1.4.2
Collecting lazy-object-proxy==1.4.2
  Using cached lazy-object-proxy-1.4.2.tar.gz (34 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/pypy3 /usr/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpu0hbfyxa
       cwd: /tmp/pip-install-ghlb2wmb/lazy-object-proxy
  Complete output (1 lines):
  /usr/bin/pypy3: can't find '__main__' module in '/usr/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl/pep517/_in_process.py'
  ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/pypy3 /usr/share/python-wheels/pep517-0.8.2-py2.py3-none-any.whl/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpu0hbfyxa Check the logs for full command output.

Older versions of python-lazy-object install fine:

$ pypy3 -m pip install lazy-object-proxy==1.4.1
Collecting lazy-object-proxy==1.4.1
  Using cached lazy-object-proxy-1.4.1.tar.gz (34 kB)
Building wheels for collected packages: lazy-object-proxy
  Building wheel for lazy-object-proxy (setup.py) ... done
  Created wheel for lazy-object-proxy: filename=lazy_object_proxy-1.4.1-pp36-pypy36_pp73-linux_x86_64.whl size=9893 sha256=b9e635f842283207ebdf7508c0d3b46cc1cf8fd667c74701d32655a032fc64a0
  Stored in directory: /home/shane/.cache/pip/wheels/10/64/03/20acef448d8cdd437f71abd862edd1bcee7abd4d45be02830a
Successfully built lazy-object-proxy
Installing collected packages: lazy-object-proxy
  Attempting uninstall: lazy-object-proxy
    Found existing installation: lazy-object-proxy 1.4.0
    Uninstalling lazy-object-proxy-1.4.0:
      Successfully uninstalled lazy-object-proxy-1.4.0
Successfully installed lazy-object-proxy-1.4.1

I'm not sure what changed... the diff between 1.4.1 and 1.4.2 seemed mysterious to me. 😉

Pretty sure it's just some wheel caching issue you are having there. Clear the pip cache and you'll see it fail for any version.

Try to reinstall the pip517 module, or pip - who know what's going on there...

I could try tho to build a pypy-only wheel on the latest LOP release, so all this build nonsense is skipped for pypy - how about that?

Good call, I did:

pypy3 -m pip install --upgrade pip
pypy3 -m pip install lazy-object-proxy=1.6.0

And it worked like a charm.

Thanks!