When creating a new environment with spyder after about a week ago:
conda create -n spydertest spyder
conda creates the environment and installs spyder, but incorrectly installs a version of pyqt (version 6, currently at version 6.11.0) that spyder is not currently compatible with. It needs version 5 (latest version = 5.15.11).
I tested 2 different solutions, both work:
conda create -n spydertest pyqt=5.15.11 spyder
which forces the correct pyqt version. The version at conda-forge seems to work correctly, so the following also works fine:
I looked at the package requirements and it does look like the spyder package > 6.1.0 (and most 6.1.0 packages) in the conda defaults channel incorrectly specifies:
This is now fixed. Thanks for flagging it and for testing workarounds.
About the pyqt requirement: the pyqt >=6.5,<7 requirement in the spyder package is correct. Spyder 6 supports Qt6, and the defaults channel has moved to Qt6. Changing it to pyqt >=5.15,<5.16 would have masked the problem rather than fixed it. Your pyqt 5 workaround only helped because it avoided the broken Qt6 packages altogether.
What actually happened: Spyder depends on Qt, a set of libraries for building user interfaces. A recent Qt update didn’t work with some packages built against the previous Qt version, and conda was installing the two together. Spyder itself was fine. The problem was in the Qt packages underneath it.
Issues like this are hard to catch ahead of time. Qt aims to keep newer releases compatible with packages built against older ones, so we don’t rebuild every dependent package each time Qt updates. With many packages built on Qt, that isn’t practical. But that compatibility only holds when everything is built with the same compiler, system environment and configuration, and small differences between builds can break it without any obvious sign. That’s why reports like yours matter so much.
What we did: We updated the package metadata so conda only installs Qt versions that work together. The fix also protects other Qt-based packages, not just Spyder.
What you need to do: Nothing for new environments. conda create -n spydertest spyder now works as expected. If you used the pyqt=5.15.11 workaround, you can drop it and recreate the environment without the pin to get the current Qt6 setup. If you have an environment that’s already broken, delete it and create it again.
Thanks @Tyler_F_Anaconda , I verified that it does now work with a fresh environment and installing just spyder. Thank you for tracking down the problem and correcting it!