Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt5-未能加载平台插件;windows";。可用的平台有:windows,minimal_Python_Pyqt_Pyqt5 - Fatal编程技术网

Python PyQt5-未能加载平台插件;windows";。可用的平台有:windows,minimal

Python PyQt5-未能加载平台插件;windows";。可用的平台有:windows,minimal,python,pyqt,pyqt5,Python,Pyqt,Pyqt5,当我试图从Eclipse运行任何PyQt5程序时,我遇到了这个错误 无法加载平台插件“windows”。可用的平台有:windows,minimal 我从未在PyQt4中遇到过这个问题,但在新版本中遇到了这个问题 我不能运行程序。从这里的其他问题我知道它发生在Qt C++开发中,解决方案是将一些QT DLL文件拷贝到可执行程序目录。 os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_platform_plugins_path 在Python开发(Py

当我试图从Eclipse运行任何PyQt5程序时,我遇到了这个错误

无法加载平台插件“windows”。可用的平台有:windows,minimal

我从未在PyQt4中遇到过这个问题,但在新版本中遇到了这个问题

我不能运行程序。从这里的其他问题我知道它发生在Qt C++开发中,解决方案是将一些QT DLL文件拷贝到可执行程序目录。
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_platform_plugins_path
在Python开发(PyQt5)中也需要这样做吗?是否将这些文件添加到my*.py文件所在的目录?这不应该由PyQt5安装管理吗


谢谢

我在PyQt5 5.0.2、Windows 8、Python 3.3.2中遇到了这个问题;稍有不同的错误消息:

加载平台插件“windows”失败。可用的平台有:

设置以下环境变量,然后运行应用程序


$env:QT\u QPA\u PLATFORM\u PLUGIN\u PATH=“C:\Python33\Lib\site packages\PyQt5\plugins\platforms”
C:\Python34\Lib\site packages\PyQt5\libEGL.dll复制到与.exe相同的目录中


来源:

我发现需要包含文件:qwindows.dll,以允许我的.exe文件独立运行而不会出现错误。为此,请将qwindows.dll路径添加到数据文件列表中:

setup(windows=[YOURSCRIPT.py]
, data_files = [('.','DRIVE:\PythonPath\Lib\site-packages\PyQt4\plugings\platforms\qwindows.dll')]) 

您这样做并设置环境路径的原因是,如果qwindows.dll文件保存在同一个包中,那么您的程序将在任何计算机上运行。如果只设置环境变量,则该程序只能在安装了PyQt的计算机上成功运行

另一个适合我的解决方案;视窗7;PyQt5,Python 3.4 64位:

pyqt = os.path.dirname(PyQt5.__file__)
QApplication.addLibraryPath(os.path.join(pyqt, "plugins"))
您还可以使用
plugins
目录的路径设置环境变量
QT\u QPA\u PLATFORM\u PLUGIN\u PATH

os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_platform_plugins_path

这也适用于PyInstaller

使用
cx\u freeze
编译代码时,我遇到了类似的问题


将文件夹platforms从python安装目录复制到我的构建文件夹中,解决了这个问题。“platforms”文件夹包含qminimal.dll

我喜欢uetoyo的答案,但Anaconda已经移动了目录。这对我来说适用于Windows7上的Python 3.5.2 Anaconda4.2.0

import os
if os.name == "nt":  # if windows
    import PyQt5
    pyqt_plugins = os.path.join(os.path.dirname(PyQt5.__file__),
                                "..", "..", "..", "Library", "plugins")
    QApplication.addLibraryPath(pyqt_plugins)

这就是我在使用Anaconda Python 3.6发行版时所做的工作:

  • 我使用
    pip安装PyQt5
    安装了PyQt5。它的作用是在
    。/Anaconda3/Lib/site packages/PyQt5
    路径中创建一个
    Qt/Plugins
    Plugins目录

  • 继Roger Allen和uetoyo之后,我补充道:

  • 如果os.name==“nt”:#如果windows
    从PyQt5导入\uuuu文件__
    pyqt_plugins=os.path.join(os.path.dirname(_文件);“Qt”,“plugins”)
    QApplication.addLibraryPath(pyqt_插件)
    os.environ['QT\u QPA\u平台\u插件\u路径']=pyqt\u插件
    

    我的剧本。它也可以与pyinstaller一起使用。

    如果您使用PySide2,您可以使用此选项进行检查

    import os
    if os.name == 'nt':
        import PySide2
        pyqt = os.path.dirname(PySide2.__file__)
        QApplication.addLibraryPath(os.path.join(pyqt, "plugins"))
    

    太棒了,您是如何找到此变量的?您应该解释如何设置该env变量。这仅在您首先“导入PyQt5”时有效。当然,在调用
    PyQt
    之前,必须导入它。感谢您的提示!我正在使用cx_freeze打包我的pyqt5可执行文件。我发现我可以在选项中添加“include_files”,其中包括platforms文件夹。然后它就可以工作了。