Last Updated on 2021-10-12 by Clay
一直以來,我都有使用 PyQt5 做一些簡單的小工具供自己日常使用,在我將日常生活用的筆電從 Linux 轉到 MacOS 後,這些小工具也一直都運作得很好。
直到我最近在忙著寫的某個項目終於結束,想著『哎呀我有差不多五個月左右沒有更新了呢~』—— 然後,就把 MacOS 更新到了最新版本:Big Sur 11.2.1。
用了一天也用得挺正常的,直到我需要使用到我用 PyQt5 所寫的小工具時。我等了好半天,我的小工具一直沒有跳出來,倒是下方的 Dock 一直有顯示小工具的圖示(Icon)。
我懷疑到底是哪邊出了差錯,於是做了以下兩個步驟:
- 重新開機(失敗,仍然無法顯示 PyQt5 視窗)
- 只使用無圖形化介面的終端機執行程式(可以,程式依舊可以跑)
- 從 Github 上 clone 另外一個有圖形化介面的專案(失敗,同樣無法顯示視窗)
- 打開 Linux 舊筆電,執行同樣的小工具(可以,舊的版本圖形化介面顯示正常)
經過了以上的測試,我幾乎可以肯定,是在 MacOS Big Sur 某個版本以後,我當前的 PyQt5 版本就無法運作了(應該說,其實只是無法顯示視窗)。
解決方法
在查詢 StackOverflow 以及 Github 上相關的 Issues 後,果然如我所想,不只是我碰到這個問題 —— 我只是比較晚升級 MacOS,所以比較晚遇到。大致上我看到的不外乎兩種方法:
- 將 PyQt5 版本降低到 1.13.2 以下。
- 關閉 MacOS 的 dark mode(有許多網友聲稱這是造成 PyQt5 無法顯示的主因)
在我個人嘗試過後,我在將 PyQt5 降低版本之後確實成功將小工具的圖形化介面啟動了!但是就算我關閉了 MacOS 的 dark mode,我仍然無法在更高版本的 PyQt5 中開啟圖形化介面。
或許我的問題與網友們的不同也不一定。不過我就留下我的嘗試經驗,權當作分享。
References
- https://stackoverflow.com/questions/64784300/cant-seem-to-get-a-window-from-pyqt5-in-pycharm-macos-big-sur
- https://github.com/pyinstaller/pyinstaller/issues/4627