conda-forge / pyqt-feedstock

A conda-smithy repository for pyqt.
BSD 3-Clause "New" or "Revised" License
5 stars 35 forks source link

Please provide a pyqt5 package #97

Open flylover88 opened 3 years ago

flylover88 commented 3 years ago

The pip package is called pyqt5, so trying

conda install pyqt5

results in an error, causing me forget that I should use

conda install pyqt
# or
conda install pyqt=5

Thank you!

xref https://pypi.org/project/PyQt5/

ocefpaf commented 3 years ago

The pip package is called pyqt5, so trying

Adding the version to the package name is a terrible hack to "kind of" allow both versions to be installed at the same place. Conda-forge is not PyPI and conda is not pip, so some differences are expected. With that said, we never got a complaint before. If this is really something the community wants we can try a meta package that is called pyqt5 and installs pyqt >=5, but I'm not so sure that is a good idea.

klauer commented 3 years ago

I've been bitten by this name difference in a number of different projects where we try to share requirements files for pip-based and conda-based test environments.

While it would make our group's lives easier to have the proposed metapackage, I've never opened an issue since I think the assertion that "conda-forge is not PyPI" is compelling - enough that the feedstock authors shouldn't feel the need to match it.

hmaarrfk commented 3 years ago

The challenge is that pyqt is not a normal pip package. It pulls in many C dependencies, which can easily cause conflicts on a person's computer making their environment unrecoverable.

I've spent at least 30 minutes trying to recover an environment before giving up and finally rebuilding it because I accidentally typed pip install pyqt5.

The other thing to note, is that pyqt5, is what the import is called. You don't import pyqt, you import PyQt5. So having the conda package name match it seems to make sense.

hmaarrfk commented 3 years ago

It is rather strange that pip list doesn't find the package, but pip does recognize it as already installed

(dev) ✘-INT ~ 
10:12 $ mamba list | grep pyqt
pyqt                      5.12.3           py38h578d9bd_7    conda-forge
pyqt-impl                 5.12.3           py38h7400c14_7    conda-forge
pyqt5-sip                 4.19.18          py38h709712a_7    conda-forge
pyqtchart                 5.12             py38h7400c14_7    conda-forge
pyqtgraph                 0.11.1             pyhd3deb0d_0    conda-forge
pyqtwebengine             5.12.1           py38h7400c14_7    conda-forge
(dev) ✔ ~ 
10:12 $ pip list | grep pyqt
pyqtgraph                     0.11.1
(dev) ✔ ~ 
10:12 $ pip install pyqt5
Requirement already satisfied: pyqt5 in ./miniforge3/envs/dev/lib/python3.8/site-packages (5.12.3)
jdehorty commented 3 years ago

The challenge is that pyqt is not a normal pip package. It pulls in many C dependencies, which can easily cause conflicts on a person's computer making their environment unrecoverable.

I've spent at least 30 minutes trying to recover an environment before giving up and finally rebuilding it because I accidentally typed pip install pyqt5.

The other thing to note, is that pyqt5, is what the import is called. You don't import pyqt, you import PyQt5. So having the conda package name match it seems to make sense.

Thanks for posting this. I also accidentally typed pip install pyqt5 at first and was going crazy trying to figure out why conda wasn't working.