当前位置:   article > 正文

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

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"), 
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

结果展示:
在这里插入图片描述

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/645752
推荐阅读
相关标签
  

闽ICP备14008679号