macOS Big Sur 11.0.1에서 앱이 나타나지 않음
운영 체제를 업그레이드하는 것은 항상 위험합니다. 호환성 문제가 발생할 가능성이 있습니다. 내 macOS를 Catalina에서 최신 Big Sur로 업그레이드하는 위험을 감수했습니다. 그 후 새 OS의 디스플레이는 예쁘게 보이지만 모든 PyQt5 앱을이 새 OS에서 시작할 수 없습니다. GUI 창이 평소처럼 팝업되지 않고 터미널에 오류 메시지가 표시되지 않습니다. 나는이 문제를 일으키는 원인을 파악하기 위해 하루 종일을 보냈다. 나는 해결책을 찾았지만 이상한 방식으로 혼란스러워했습니다.
메인 스크립트에 다음 세 줄을 추가하면 앱이 정상으로 돌아옵니다.
import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('TkAgg')
새 OS에 Qt5Agg 백엔드와의 호환성 문제가있는 것 같습니다. 그러나 이상한 점은이 솔루션이 내가 matplotlib를 전혀 사용하지 않는 Pyqt5 앱 중 하나에서도 작동한다는 것입니다.
내가 사용한 Python 버전은 3.8.4이고 내가 가지고있는 PyQt5 버전은 5.15.1입니다.
누군가가이 솔루션을 작동하게 만드는 내부에서 일어나는 일을 설명 할 수 있기를 바랍니다. 또한이 임시 해결책이 같은 문제를 가진 사람에게 도움이되기를 바랍니다.
답변
PyQt 메일 링리스트에 대한 답변은이 환경 변수 설정이 작동한다고 지적했습니다.
QT_MAC_WANTS_LAYER=1
를 통해 찾을 수 거기 맥 OS 빅 수르에서 작동하지 않습니다 PyQt는 라이브러리에 관한 해결책은? 과https://forums.macrumors.com/threads/pyqt5-and-big-sur.2260773/?post=29243620#post-29243620
matplotlib.use('TkAgg')
뒤에 오는 matplotlib.use('Qt5Agg')
것이 나에게도 효과가 있음을 확인할 수 있습니다. 나는 또한 일하는 것으로 이것을 아래로 내렸다.
# from matplotlib.backends import _tkagg
import _tkinter
import matplotlib.pyplot as plt
plt.figure()
그래서 그것은 컴파일 된 _tkinter
모듈 에 관한 것 입니다. 아마도 inputhook일까요?
나를 위해 제안 된 솔루션은 pycharm의 breackpoints에서 충돌을 가져 왔습니다 ... 유일한 것이 도움이되었습니다. https://forums.macrumors.com/threads/pyqt5-and-big-sur.2260773/ 모두 마술처럼 작동했습니다 ... QT가 곧 해결되기를 바랍니다.