matplotlib和cx_freeze的问题

时间:2017-02-06 22:15:33

标签: python matplotlib cx-freeze

我正在尝试冻结使用matplotlib.pyplot生成并保存绘图的基于控制台的程序。 (在保存之前,我不需要预览或查看这些图。)这是我的setup.py脚本:

from cx_Freeze import setup, Executable
import os

os.environ['TCL_LIBRARY'] = "C:\\Program Files\\Anaconda3\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Program Files\\Anaconda3\\tcl\\tk8.6"

setup(name='FLOUResence.exe',
    version='0.1',
    options = {"build_exe": {"packages":["pandas", "numpy", "scipy", "matplotlib"]}
           },
executables = [Executable(script='caller.py', targetName='FLOUResence.exe', 
icon="icon.ico", base='Console')]
)

我可以编译程序,但是当我运行图形模块时,它会返回以下错误:

  

此应用程序无法启动,因为它无法找到或加载Qt平台插件“windows”   在“”   重新安装应用程序可能会解决此问题。

据我所知,因为matplotlib想要加载/使用Qt GUI,但因为它是一个控制台应用程序cx_freeze不加载Qt?这是对问题的正确解释吗?有关如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您需要将Qt平台插件添加到您的分发目录中。试一试,将PyQt安装的Library\plugins\platforms复制到package/dist目录。如果这对您有用,您可以在include_files构建选项中添加目录。我使用miniconda,因此平台目录位于c:\miniconda\Library\plugins

setup(name='FLOUResence.exe',
    version='0.1',
    options = {
        "build_exe": {"packages":["pandas", "numpy", "scipy", "matplotlib"],
                      "include_files": [r'c:\miniconda\Library\plugins\platforms']}
    },
    executables = [Executable(script='caller.py', targetName='FLOUResence.exe', 
                   icon="icon.ico", base='Console')]
)