Matplotlib pyinstaller 错误执行失败

Posted

技术标签:

【中文标题】Matplotlib pyinstaller 错误执行失败【英文标题】:Matplotlib pyinstaller error failed to execute 【发布时间】:2021-01-05 13:54:09 【问题描述】:

我生成的 .exe 无法使用 matplotlib 程序执行。

54 信息:PyInstaller:4.0 54 信息:Python:3.7.8rc1 57 信息:平台:Windows-10-10.0.18362-SP0 58 信息:写 C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\Chart.spec 59 信息:UPX 不可用。 61 信息:扩展 PYTHONPATH 与 路径 ['c:\Users\vnareshk\Desktop\UPH\pythonProject', 'C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts'] 69 信息:检查分析 69 信息:构建分析,因为 Analysis-00.toc 不存在 70 INFO: 初始化模块 依赖关系图... 73 信息:缓存模块图挂钩... 86 信息: 分析 base_library.zip ... 1622 INFO:处理预查找模块 路径挂钩 distutils 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-distutils.py'。 1624 信息:distutils:重定向到非 venv 目录 'c:\users\vnareshk\appdata\local\programs\python\python37\lib' 2624 信息:缓存模块依赖关系图... 2711 信息:正在运行 分析 Analysis-00.toc 2726 信息:添加 Microsoft.Windows.Common-Controls 到 final 的依赖程序集 所需的可执行文件 c:\users\vnareshk\appdata\local\programs\python\python37\python.exe 2785信息:分析 c:\Users\vnareshk\Desktop\UPH\pythonProject\Chart。 3339 信息: 处理预查找模块路径挂钩站点来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_find_module_path\hook-site.py'。 3340 信息:站点:重定向到 fake-dir 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\fake-modules' 6847 INFO:处理预安全导入模块挂钩 setuptools.extern.six.moves 从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-setuptools.extern.six.moves.py'。 10194 信息:处理安全前导入模块挂钩六。从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-six.moves.py'。 12483 信息:处理模块挂钩... 12483 信息:加载模块挂钩 'hook-certifi.py' 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'... 12491 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'... 12492 信息:从加载模块挂钩“hook-distutils.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 12493 信息:从加载模块挂钩“hook-encodings.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 12583 信息:从加载模块挂钩“hook-lib2to3.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 12630 信息:从加载模块挂钩“hook-matplotlib.backends.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 13120 信息:Matplotlib 后端“GTK3Agg”:忽略 后端 Gtk3Agg 需要 cairo 13381 信息:Matplotlib 后端“GTK3Cairo”:忽略 cairo 后端要求 pycairo>=1.11.0 或 cairocffiis 已安装 13629 信息:Matplotlib 后端“MacOSX”:忽略 无法从 'matplotlib.backends' 导入名称 'macosx' (c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\matplotlib\backends_init .py) 13873 信息:Matplotlib 后端“nbAgg”:忽略 没有名为“IPython”的模块 14206 信息:Matplotlib 后端“Qt4Agg”:忽略 无法导入任何 qt 绑定 14456 信息:Matplotlib 后端“Qt4Cairo”:忽略 cairo 后端要求 pycairo>=1.11.0 或 cairocffiis 已安装 14776 信息:Matplotlib 后端“Qt5Agg”:忽略 无法导入任何 qt 绑定 15020 信息:Matplotlib 后端“Qt5Cairo”:忽略 cairo 后端要求 pycairo>=1.11.0 或 cairocffiis 安装 15467 信息:Matplotlib 后端“TkAgg”:添加 15902 信息: Matplotlib 后端“TkCairo”:忽略 cairo 后端要求 pycairo>=1.11.0 或 cairocffiis 安装 16314 信息:Matplotlib 后端“WebAgg”:添加 16733 信息: Matplotlib 后端“WX”:忽略 没有名为“wx”的模块 16975 信息:Matplotlib 后端“WXAgg”:忽略 没有名为“wx”的模块 17218 信息:Matplotlib 后端“WXCairo”:忽略 没有名为“wx”的模块 17529 信息:Matplotlib 后端“agg”:添加 17772 信息:Matplotlib 后端“cairo”:忽略 cairo 后端要求 pycairo>=1.11.0 或 cairocffiis 已安装 18185 信息:Matplotlib 后端“pdf”:添加 18604 信息: Matplotlib 后端“pgf”:添加 18911 信息:Matplotlib 后端“ps”: 添加了 19226 信息:Matplotlib 后端“svg”:添加了 19649 信息: Matplotlib 后端“模板”:添加 19858 信息:加载模块挂钩 'hook-matplotlib.py' 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20112 信息:从加载模块挂钩“hook-numpy.core.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20180 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20181 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20480 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20482 信息:未找到要排除的导入:'PyQt4' 20482 信息: 未找到要排除的导入:“FixTk”20483 信息:排除导入 'PyQt5' 20484 信息:从模块 PIL.ImageQt 中删除 PyQt5 的导入 20485 信息:排除导入“tkinter” 204​​87 信息:删除导入 来自模块 PIL.ImageTk 的 tkinter 20487 信息:要排除导入 未找到:'PySide' 20487 信息:加载模块挂钩 'hook-PIL.SpiderImagePlugin.py' 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20489 信息:不包括导入“tkinter” 204​​90 信息:要导入 排除未找到:'FixTk' 20490 信息:加载模块挂钩 'hook-pkg_resources.py' 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 20911 信息:处理预安全导入模块挂钩 win32com 来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\pre_safe_import_module\hook-win32com.py'。 20980 警告:未找到隐藏的导入“pkg_resources.markers”! 20981 信息:排除导入 'ma​​in' 20983 信息:删除导入 ma​​in 来自模块 pkg_resources 20984 信息:加载模块挂钩“hook-setuptools.py”来自 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21497 信息:从加载模块挂钩“hook-sysconfig.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21498 信息:从加载模块挂钩“hook-xml.dom.domreg.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21499 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21500 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21500 信息:从加载模块挂钩“hook-_tkinter.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks'... 21674 信息:检查树 21674 信息:构建树,因为 Tree-00.toc 不存在 21676 信息:构建树 Tree-00.toc 21734 信息:检查树 21734 信息:构建树,因为 Tree-01.toc 不存在 21736 信息:构建树 Tree-01.toc 21746 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'... 22055 信息:从 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'... 22359 信息:从加载模块挂钩“hook-win32com.py” 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\stdhooks'... 22704 信息:寻找 ctypes DLL 22758 信息:分析运行时 挂钩 ... 22764 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_multiprocessing.py' 22767 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth__tkinter.py' 22768 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgres.py' 22770 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_win32comgenpy.py' 22772 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_mplconfig.py' 22772 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_mpldata.py' 22773 信息:包括运行时挂钩 'c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\_pyinstaller_hooks_contrib\hooks\rthooks\pyi_rth_certifi.py' 22786 信息:寻找动态库 23468 信息:寻找鸡蛋 23469 信息:使用 Python 库 c:\users\vnareshk\appdata\local\programs\python\python37\python37.dll 23471 信息:找到绑定重定向:[] 23480 信息:写入警告 到 C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\build\Chart\warn-Chart.txt 23603 信息:图形交叉引用写入 C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\build\Chart\xref-Chart.html 23664 信息:检查 PYZ 23665 信息:构建 PYZ 因为 PYZ-00.toc 不存在 23667 信息:构建 PYZ (ZlibArchive) C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\build\Chart\PYZ-00.pyz 25350 信息:构建 PYZ (ZlibArchive) C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\build\Chart\PYZ-00.pyz 顺利完成。 25386 信息:检查 PKG 25386 信息:建筑 PKG,因为 PKG-00.toc 不存在 25388 信息:构建 PKG (CArchive) PKG-00.pkg 33608 信息:建筑 PKG (CArchive) PKG-00.pkg 顺利完成。 33643 信息:引导加载程序 c:\users\vnareshk\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\bootloader\Windows-64bit\runw.exe 33643 信息:检查 EXE 33647 信息:构建 EXE,因为 EXE-00.toc 不存在 33648 信息:从 EXE-00.toc 构建 EXE 33648 信息: 将存档附加到 EXE C:\Users\vnareshk\AppData\Local\Programs\Python\Python37\Scripts\dist\Chart.exe 33674 信息:从 EXE-00.toc 构建 EXE 已成功完成。

这是我的代码:

import PySimpleGUI as sg
import matplotlib.pyplot as plt
def draw_plot():
    plt.plot([0.1, 0.2, 0.5, 0.7,0.2])
    plt.show(block=False)
layout = [[sg.Button('Plot'), sg.Cancel(), sg.Button('Popup')]]
window = sg.Window('Have some Matplotlib....', layout)
while True:
    event, values = window.read()
    if event in (sg.WIN_CLOSED, 'Cancel'):
        break
    elif event == 'Plot':
        draw_plot()
    elif event == 'Popup':
        sg.popup('Yes, your application is still running')
window.close()

【问题讨论】:

console = True放到你的myspec文件中,然后执行你的.exe并检查控制台中的错误。 “从 EXE-00.toc 构建 EXE 成功完成。” 代码是这样说的,你遇到了什么错误,你有没有尝试运行@中的文件987654323@ 文件夹?也包括错误代码 运行exe文件时出现“致命错误,无法执行脚本图表”。 【参考方案1】:

我遇到过这样的问题。这是我的建议:

首先,像这样编译你的代码

pyinstaller -F your_script.py

这将编译为 .exe,并在后台打开一个调试窗口,显示后续步骤所需的信息。

接下来,找到并运行您的 .exe。在脚本失败之前,您将在调试窗口中看到导致崩溃的错误。我最近看到的最大罪魁祸首是 pkg_resources.py2_warn导入错误。

最后,在代码顶部添加一个 import 语句,强制导入导致 pyinstaller 构建错误 .exe 的任何内容。例如,由于我遇到的 pkg_resources 错误,我最终添加了:

import pkg_resources.py2_warn

现在它可以正确编译并且可执行文件可以正常工作。

【讨论】:

以上是关于Matplotlib pyinstaller 错误执行失败的主要内容,如果未能解决你的问题,请参考以下文章

Pyinstaller exe 转换 matplotlib __init__ 错误

ImportError: numpy.core.multiarray failed to import [cv2, matplotlib, PyTorch, pyinstaller ]

ImportError: numpy.core.multiarray failed to import [cv2, matplotlib, PyTorch, pyinstaller ]

pyinstaller 不适用于 pyqt5 和 matplotlib

带有 Pyside2 和 Matplotlib 的 Pyinstaller 无法正常工作

pyinstaller打包之后运行出现:Could not find the matplotlib data files