【python3.6】pyinstaller报错AssertionError: Failed to determine matplotlib‘s data directory!【解决方案】

简介: 【python3.6】pyinstaller报错AssertionError: Failed to determine matplotlib‘s data directory!【解决方案】

项目场景:

使用python3.6 使用 pyinstaller 调用 matplotlib 打包成exe时报错:AssertionError: Failed to determine matplotlib's data directory!


问题描述

self._hook_module = importlib_load_source(self.hook_module_name, self.hook_filename)

File “c:\users\71013\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\compat.py”, line 641, in importlib_load_source

return mod_loader.load_module()

File “<frozen importlib._bootstrap_external>”, line 399, in _check_name_wrapper

File “<frozen importlib._bootstrap_external>”, line 823, in load_module

File “<frozen importlib._bootstrap_external>”, line 682, in load_module

File “<frozen importlib._bootstrap>”, line 265, in _load_module_shim

File “<frozen importlib._bootstrap>”, line 684, in _load

File “<frozen importlib._bootstrap>”, line 665, in _load_unlocked

File “<frozen importlib._bootstrap_external>”, line 678, in exec_module

File “<frozen importlib._bootstrap>”, line 219, in _call_with_ames_removed

File “c:\users\71013\appdata\local\programs\python\python36\lib\site-packages\PyInstaller\hooks\hook-matplotlib.py”, line 15, in

assert mpl_data_dir, “Failed to determine matplotlib’s data directory!”

AssertionError: Failed to determine matplotlib’s data directory!


原因分析:

这是由pyinstaller 的 matplotlib钩子引起的错误,由于某种原因,应该获取数据路径的exec_statement()函数不起作用。(这是python的一个bug)


解决方案:

首先,找到python的安装路径中,你的三方库目录(site-packages)中,找到PyInstaller的文件夹,进入到hooks 文件夹中,找到hook-matplotlib.py文件。

提示路径可能如下: C:\Users\xxxx\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks

其次,打开hook-matplotlib.py文件,注释掉原来的代码,输入下方代码,点击保存,再重新执行打包动作。

新代码如下:

import matplotlib
mpl_data_dir = matplotlib.get_data_path()
datas = [ 
    (mpl_data_dir, "matplotlib/mpl-data"), 
]

结果展示:

谢谢你这么好看,还点赞+收藏!

相关文章
|
2月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
1天前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
12 5
|
11天前
|
Linux Python
【Azure Function】Python Function部署到Azure后报错No module named '_cffi_backend'
ERROR: Error: No module named '_cffi_backend', Cannot find module. Please check the requirements.txt file for the missing module.
|
2月前
|
机器学习/深度学习 搜索推荐 数据可视化
Python量化炒股常用的Matplotlib包
Python量化炒股常用的Matplotlib包
28 7
|
1月前
|
数据可视化 数据挖掘 API
Python中的数据可视化利器:Matplotlib与Seaborn对比解析
在Python数据科学领域,数据可视化是一个重要环节。它不仅帮助我们理解数据,更能够让我们洞察数据背后的故事。本文将深入探讨两种广泛使用的数据可视化库——Matplotlib与Seaborn,通过对比它们的特点、优劣势以及适用场景,为读者提供一个清晰的选择指南。无论是初学者还是有经验的开发者,都能从中找到有价值的信息,提升自己的数据可视化技能。
62 3
|
14天前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
18 0
|
17天前
|
XML JSON Ubuntu
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
171 0
|
27天前
|
Python
Python的报错让我学到新知识
Python的报错让我学到新知识
11 0
|
27天前
|
数据采集 网络安全 Python
Python使用urllib或者urllib2模块打开网页遇到ssl报错
Python使用urllib或者urllib2模块打开网页遇到ssl报错
18 0
|
2月前
Python3.x常用时间的处理方法 和urlopen处理post请求,传值data 原创
Python3.x常用时间的处理方法和urlopen处理post请求,传值data 原创
30 0