Mac Big Sur config to open windows in Terminal with PyQt5 or PySide2?

Heads up! You've already completed this tutorial.

Stephen E van Dellen wrote

I updated my mac's OS from Catalina to Big Sur a few days ago. Since then, scripts that open a window with PyQt5 or PySide2 work as expected when started with IDLE's File, Open Module command. But if I run them with a Terminal command or in Visual Studio Code, they start OK with no indications of trouble but no window ever opens. The Python icon appears in the Dock and Activity Monitor says a Python process is running and using 99% of a CPU. I have to Force Quit it to stop it. This happens even with the simplest scripts in the "basic" source code folder with the Learning PyQt book. I don't know a lot about Python configuration. I probably didn't get everything setup properly for the new OS. I'd appreciate suggestions.

python
macOS About shows: Version 11.0.1
python3 -V returns Python 3.9.0
(On mac, Python commands without a suffix name version 2 programs which comes with macOS. Version 3 commands have a "3" suffix.)
pip3 -V returns: pip 20.2.4
pip3 list returns:
   PyQt5             5.15.1
   PySide2           5.15.1
In a Terminal window, %echo $PATH returns:
/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet

Martin Fitzpatrick

Hey, I haven't upgraded my Mac laptops yet (will give it a go with one at the weekend) but I've read elsewhere that downgrading PyQt5 to v5.13 helps fix the issue -- I wonder if it's just the act of re-installing that helps though to be honest, have had to do that on previous Mac upgrades.

So either

python
pip3 install --force-reinstall pyqt5

or...

python
pip3 install pyqt5==5.13

Stephen E van Dellen

Create GUI Applications with Python & Qt5 by Martin Fitzpatrick — (PyQt5 Edition) The hands-on guide to making apps with Python — Over 10,000 copies sold!

More info Get the book

I did pip3 install pyqt5==5.13. Same problem.

Before that, I uninstalled/removed everything related to Python 3, restarted the mac and reinstalled Python 3.9.0 and PySide2. Same problem.

A script that opens a window with Tkinter works OK when started with a Terminal command, Visual Studio Code or IDLE3.

I'd sure appreciate hearing whether other Big Sur users are or are not having the same problem.

Here's the PySide2 script I've been experimenting with:

python
from PySide2.QtWidgets import QApplication, QWidget
import sys
app = QApplication(sys.argv)
window = QWidget()
window.show()
app.exec_()

and here's the Tkinter script:

python
from tkinter import Label
widget = Label(None, text='Hello GUI world!')
widget.pack()
widget.mainloop()

SJ Childerley

Not that this helps much, however I two conda environments, which according to conda both contain pyqt-5.9.2

However when I run the following script:

python
import inspect
from PyQt5 import Qt

vers = ['%s = %s' % (k,v) for k,v in vars(Qt).items() if k.lower().find('version') >= 0 and not inspect.isbuiltin(v)]
print('\n'.join(sorted(vers)))

I discover one environment, the one that works, contains pyqt5 5.9.2 (PYQT_VERSION_STR = 5.9.2) and the environment that doesn't work contains pyqt5 5.15.1 (PYQT_VERSION_STR = 5.15.1)

Where "works" = generates a window containing widgets.


Stephen E van Dellen

Thanks for the suggestion. When I try to install versions earlier than 5.13, Pip says:

bash
% pip install PyQt5==5.9
Collecting PyQt5==5.9
Using cached PyQt5-5.9-5.9.1-cp35.cp36.cp37-abi3-macosx_10_6_intel.whl (82.2 MB)
ERROR: Could not find a version that satisfies the requirement sip<4.20,>=4.19.3 (from PyQt5==5.9) (from versions: 5.0.0, 5.0.1, 5.1.0, 5.1.1, 5.1.2, 5.2.0, 5.3.0, 5.4.0)
ERROR: No matching distribution found for sip<4.20,>=4.19.3 (from PyQt5==5.9)

I don't know enough about Python to understand the problem. I was able to install 5.13 and 5.14. They work the same as 5.15.


SJ Childerley

Martin is likely to have a better handle on the changes made 5.13 -> 5.15 and one would hope that Riverbank might have some release notes.

For my part I've discovered that 9.5.2 is a pure Anaconda installation, however the environment that didn't work for me containing pyqt5 5.15.1 was a result of me piping on top of a previous Anaconda installation.

When I pip3 uninstalled pyqt5 and then used conda install pyqt5 again things went back to normal and started working.


Stephen E van Dellen

Fixed in PyQt5 5.15.2. Doesn't seem to be fixed in PySide2 5.15.2. I've reported that at bugreports.qt.io

Well done, you've finished this tutorial! Mark As Complete
[[ user.completed.length ]] completed [[ user.streak+1 ]] day streak

Mac Big Sur config to open windows in Terminal with PyQt5 or PySide2? was written by Martin Fitzpatrick .

Martin Fitzpatrick has been developing Python/Qt apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt.