【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"), 
]

结果展示:

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

目录
打赏
0
0
0
0
65
分享
相关文章
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
64 32
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
156 8
利用Python实现数据可视化:以Matplotlib和Seaborn为例
【10月更文挑战第37天】本文旨在引导读者理解并掌握使用Python进行数据可视化的基本方法。通过深入浅出的介绍,我们将探索如何使用两个流行的库——Matplotlib和Seaborn,来创建引人入胜的图表。文章将通过具体示例展示如何从简单的图表开始,逐步过渡到更复杂的可视化技术,帮助初学者构建起强大的数据呈现能力。
Python中交互式Matplotlib图表
【10月更文挑战第20天】Matplotlib 是 Python 中最常用的绘图库之一,但默认生成的图表是静态的。通过结合 mpld3 库,可以轻松创建交互式图表,提升数据可视化效果。本文介绍了如何使用 mpld3 在 Python 中创建交互式散点图、折线图和直方图,并提供了详细的代码示例和安装方法。通过添加插件,可以实现缩放、平移和鼠标悬停显示数据标签等交互功能。希望本文能帮助读者掌握这一强大工具。
161 5
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
243 5
【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.
142 2
|
6月前
|
Python的报错让我学到新知识
Python的报错让我学到新知识
79 0
Python使用urllib或者urllib2模块打开网页遇到ssl报错
Python使用urllib或者urllib2模块打开网页遇到ssl报错
75 0
【Python】报错ModuleNotFoundError: No module named ‘XXX‘
【Python】报错ModuleNotFoundError: No module named ‘XXX‘

热门文章

最新文章