提问人:Matthew-F 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19
PyQT6 在 “” 中找不到 QT 平台插件 “cocoa”
PyQT6 could not find QT platform plugin "cocoa" in ""
问:
我在 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 时间内工作正常,然后决定停止。
答: 暂无答案
评论