Unable to install PyQt6 using third party helpers (poetry, pipenv)

Eli Schwartz eschwartz at archlinux.org
Sun Jan 17 17:37:46 GMT 2021


On 1/17/21 12:12 PM, Ludovic Bellière wrote:
> Well no, neither poetry nor pipenv bundle pip, they just handle
> virtualenvs and install package using that virtualenv's pip (as per the
> traceback). It will get those package from the system's (in this case
> pyenv's). I checked the version of pip, wheel and setuptools before
> initializing this thread and they are all up to date. It seems down to
> how PyQt6 is bundled and maybe existing bugs within pip, I don't know.

pipenv vendors their pip fork "notpip", formerly vendored "pip9", and 
generally vendors everything it can get its hands on. IIRC the last time 
I seriously checked it out, it depended on no less than 4 different 
copies of the pip codebase simultaneously, if you include the regular 
pip package.

Indeed, poetry does not vendor pip... this is why I'm confused that 
poetry's demonstrated subprocess to

'.../virtualenvs/xx-_xx-py3.8/bin/pip', 'install', '--no-deps'

is producing an error when regular old pip does not. This would seem to 
indicate that it's the difference between "pip install" and "pip install 
--no-deps" + poetry's dependency handling that is causing the problem.

Given no information on how pipenv is erroring out, it's hard to analyze 
why. As I originally said first thing -- the developers of the tool 
would be best placed to analyze why the tool is reporting the error it 
reports.

...

OTOH Phil suggested "the vendored version of pip inside poetry" doesn't 
realize it can download a prebuilt wheel, but "regular pip" downloads 
the wheel. I suppose it's possible, even if they're using the same pip, 
that poetry mucks around with pip in order to build from source under 
different circumstances than pip itself does.

Looking back...

```
Command ['/home/xx/.cache/pypoetry/virtualenvs/xx-_xx-py3.8/bin/pip', 
'install', '--no-deps', 
'/home/xx/.cache/pypoetry/artifacts/9f/e5/4f/8c942b1b7e85a41e4f60f423ebcf98c81e6ce31c589eaa9f186c9e878e/PyQt6-6.0.0.tar.gz'] 
errored with the following return code 1
```

But you said "pip install PyQt6" works. The two are not comparable; the 
first, poetry, invocation has specifically determined to download an 
sdist and then run pip *on the sdist*, but it's unknown whether the 
second command, upon contacting PyPI, decided to retrieve an sdist or a 
wheel. The actual output of pip install would show this...

Naturally, you don't need build-system.requires if you're not even 
building it.

Maybe the poetry developers know if poetry is supposed to reuse PyPI 
wheels and when?
Same applies for the pipenv developers.

-- 
Eli Schwartz
Arch Linux Bug Wrangler and Trusted User

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20210117/c2f0fc3b/attachment.sig>


More information about the PyQt mailing list