matplotlib 和 cx_freeze 问题
Issue with matplotlib and 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')]
)
我可以编译程序,但是当我 运行 绘图模块时 returns 出现以下错误:
This application failed to start because it could not find or load the Qt platform plugin "windows"
in "".
Reinstalling the application may fix this problem.
据我所知,因为 matplotlib 想要 load/use Qt GUI,但因为它是一个控制台应用程序 cx_freeze 不加载 Qt?这是对问题的正确解释吗?关于如何解决这个问题有什么想法吗?
您需要将 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')]
)
我正在尝试冻结一个基于控制台的程序,该程序使用 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')]
)
我可以编译程序,但是当我 运行 绘图模块时 returns 出现以下错误:
This application failed to start because it could not find or load the Qt platform plugin "windows" in "".
Reinstalling the application may fix this problem.
据我所知,因为 matplotlib 想要 load/use Qt GUI,但因为它是一个控制台应用程序 cx_freeze 不加载 Qt?这是对问题的正确解释吗?关于如何解决这个问题有什么想法吗?
您需要将 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')]
)