【问题标题】:Apps not popping up on macOS Big Sur 11.0.1macOS Big Sur 11.0.1 上未弹出应用程序
【发布时间】:2021-02-26 04:59:14
【问题描述】:

升级操作系统总是有风险的。您可能会遇到一些兼容性问题。我冒险将我的 macOS 从 Catalina 升级到最新的 Big Sur。在那之后,新操作系统中的显示看起来很漂亮,但是我所有的 PyQt5 应用程序都无法在这个新操作系统中启动。 GUI 窗口没有像往常一样弹出,并且终端中没有显示错误消息。我花了一整天的时间试图弄清楚是什么导致了这个问题。我找到了解决方案,但以一种奇怪的方式让我感到困惑。

我在主脚本中添加以下三行后,应用程序恢复正常。

import matplotlib
import matplotlib.pyplot as plt

matplotlib.use('TkAgg')

在我看来,新操作系统与 Qt5Agg 后端存在一些兼容性问题。但奇怪的是,这个解决方案也适用于其中一个 Pyqt5 应用程序,我根本不使用 matplotlib。

我使用的Python版本是3.8.4,我的PyQt5版本是5.15.1。

我希望有人可以向我解释使该解决方案起作用的幕后情况。我也希望这个临时解决方案可以帮助有同样问题的人。

【问题讨论】:

    标签: python matplotlib pyqt5 macos-big-sur


    【解决方案1】:

    将此添加到我的 python 程序对我有用

    import os
    os.environ["QT_MAC_WANTS_LAYER"] = "1"
    

    【讨论】:

      【解决方案2】:

      正如@Eric 所说,只需在代码的最开始处,在 PySide2 导入之前添加以下内容:

      import os
      os.environ["QT_MAC_WANTS_LAYER"] = "1"
      

      然后导入 PyQt5/PySide2。

      【讨论】:

        【解决方案3】:

        我遵循解决方案here 并降级到 PyQt 5.13。这解决了我的问题并允许我编译的应用程序在 Big Sur 上运行。

        pip install PyQt5==5.13
        

        【讨论】:

          【解决方案4】:

          我正在使用 ma​​cOS Big Sur 版本 11.2.2

          按照 Eric 的建议,在启动应用程序之前在终端中输入以下行:

          export QT_MAC_WANTS_LAYER=1
          

          这为我解决了问题!

          【讨论】:

            【解决方案5】:

            对我来说,建议的解决方案在 pycharm 的断点上带来了崩溃……唯一的帮助是: https://forums.macrumors.com/threads/pyqt5-and-big-sur.2260773/ 一切都像魔术一样... 希望QT尽快修复它

            【讨论】:

              【解决方案6】:

              【讨论】:

              • 哇,这是一个很棒的发现!我一直在使用 pyside2 运行 python 3.6 来解决这个问题,这对我有用。
              【解决方案7】:

              我可以确认 matplotlib.use('TkAgg') 后跟 matplotlib.use('Qt5Agg') 也可以使事情对我有用。我把它缩小到这个也可以工作:

              # from matplotlib.backends import _tkagg
              import _tkinter
              import matplotlib.pyplot as plt
              plt.figure()
              

              所以这与编译的_tkinter 模块有关。也许是输入挂钩?

              【讨论】:

              • 在我们的 PyQt5 应用程序中遇到同样的问题,将 import _tkinter 添加到包含 QApplication 的文件似乎会导致小部件出现
              猜你喜欢
              • 2021-02-14
              • 2021-03-16
              • 2021-02-26
              • 1970-01-01
              • 2021-05-24
              • 2021-02-27
              • 1970-01-01
              • 1970-01-01
              • 2021-02-25
              相关资源
              最近更新 更多