PyQT6 在 “” 中找不到 QT 平台插件 “cocoa”

PyQT6 could not find QT platform plugin "cocoa" in ""

提问人:Matthew-F 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19

问:

我在 MacOS 14 (M1) 上使用 PyQT6 时遇到问题

我完全意识到这个问题很常见,我已经浏览了许多关于这个问题的帖子,但网上还没有找到任何解决方案来帮助我。我不确定我是否遗漏了什么.

我目前正在使用“venv”为我的本地 Python 应用程序编写 GUI。它非常小,除了这些之外,没有安装很多软件包:

numpy==1.26.1
opencv-contrib-python==4.8.1.78
PyPDF2==3.0.1
PyQt6==6.6.0
PyQt6-Qt6==6.6.0
PyQt6-sip==13.6.0
Unidecode==1.3.7

安装 PyQt6 时,一切似乎都很好。启动脚本时出现界面并正常运行。 我正在处理的问题是,在一段时间(如一两天)后运行脚本时,它开始向我抛出此错误消息:

qt.qpa.plugin:在“”中找不到Qt平台插件“cocoa” 此应用程序无法启动,因为无法初始化Qt平台插件。重新安装应用程序可能会解决此问题。

按照建议,使用 pip uninstall 删除软件包并手动将其从 venv 中删除,然后重新安装它可以解决问题,但一段时间后它仍然发生。

这是我的代码,在全新安装后工作正常:

from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QFileDialog, QLabel

class DirectoryChooserApp(QWidget):
    selected_directory = ""  # Class variable to store the selected directory

    def __init__(self):
        super().__init__()

        self.init_ui()

    def init_ui(self):
        # Create layout
        layout = QVBoxLayout()

        # Create button
        btn_choose_directory = QPushButton('Choose Directory', self)
        btn_choose_directory.clicked.connect(self.choose_directory)

        # Create label to display selected directory
        self.lbl_selected_directory = QLabel('Selected Directory: ', self)

        # Add button and label to layout
        layout.addWidget(btn_choose_directory)
        layout.addWidget(self.lbl_selected_directory)

        # Set layout for the main window
        self.setLayout(layout)

        # Set up the main window
        self.setWindowTitle('Directory Chooser App')
        self.setGeometry(100, 100, 400, 200)

    def choose_directory(self):
        # Open a directory dialog
        directory = QFileDialog.getExistingDirectory(self, 'Select Directory')

        if directory:
            self.selected_directory = directory
            self.lbl_selected_directory.setText(f'Selected Directory: {directory}')

            # Here you can perform actions with the selected directory
            print(f'Selected Directory: {directory}')

def main():
    app = QApplication([])
    window = DirectoryChooserApp()
    window.show()
    app.exec()

if __name__ == '__main__':
    main()

我不确定问题是否出在代码本身内部,因为它似乎工作正常。它只是要求用户指定目录,然后显示它。

有没有人对这个问题有可行的解决方案?我觉得很奇怪,它在 x 时间内工作正常,然后决定停止。

Python 用户界面 pyqt6

评论


答: 暂无答案