Pyinstaller打包matplotlib error总结
来源:互联网 发布:济南java工资线 编辑:程序博客网 时间:2024/05/20 14:44
最近用python写了一个小程序,实现:读取txt或csv文件中的数据,按列将数据画成曲线图。原本很简单的一个程序(源码见文末),在打包时,由于包含了matplotlib,折腾了大半天才搞定,特此分享一下经验。
1,pyinstaller打包
关于pyinstaller打包,除了pyinstaller manual之外,还可以可以参考我之前的博文——Pyinstaller程序打包。本文中用的打包命令如下:
pyinstaller --icon=umbrella.ico --onefile IQPlot.py
非常简单,将这个python源码文件打包成一个“onefile”式的“IQPlot.exe”文件。
2,Pyinstaller Syntax error: ‘yeild’ inside async funciton
第一次 输入上述打包命令,就得到上面这个条错误信息。google了一下,在stack overflow找到了答案,大致是:
jinjia2这个库添加了支持新的python3.6的“异步函数”,而我的系统中安装的是python3.5,换句话说,就是“jinjia2的版本与python3.5的版本兼容性问题”。
“The reason is Jinja2 added new async function for Python3.6 in version 2.9.”
解决办法有两个:一是将jinjia2降级到2.8.1版本
pip install --downgrade jinjia2==2.8.1
注:jiajia2是一个Jinja2 是一个仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全。
第二个办法是升级Pyinstaller
pip install --upgrade pyinstaller
我选择的是第二个办法,解决了这个错误问题,但是有产生了下面两个新错误。
3,Maximum recursion depth exceeded
解决了上面那条问题后,重新输入打包命令,又跳出了一条问题,信息如上。仔细看了一下Log,这个错误是在 “Analyze IQPlot.py”之后产生的,基本可以断定是我的python程序导入的库带来的问题。尝试注释掉导入“matplotlib”库的语句后,重新打包,打包成功。当然,这个只是验证我的推断,并没有真正解决问题。再次google,找到答案:
修改系统递归层数限制(recursion limit),具体步骤如下:
1)生成spce文件
pyi -makespec --icon=umbrella.ico --onefile IQPlot.py
2)在生成的IQPlot.spec文件中(顶部)添加如下代码,修改“recursion limit”
# -*- mode: python -*-import syssys.setrecursionlimit(5000)
3)以这个新的spec文件为依据,输入如下命令打包:
pyinstaller IQPlot.spec
3,UnicodeDecodeError: ‘utf-8’ codec can’t decode byte…
解决了上面两个问题后,又遇到一个问题,信息如上。这个问题在CSDN博客中找到了答案,博主也是转自GitHub,现摘抄如下:
1,在控制台(cmd)中输入:chcp 650001将控制台的编码格式变为utf-82,然后输入:pyinstaller -F -w ***.py打包成功
链接
- Pyinstaller打包matplotlib error总结
- python pyinstaller 打包含有matplotlib库
- pyinstaller.exe打包的总结
- matplotlib 打包exe error
- 关于使用pyinstaller 打包带有matplotlib 等出现UnicodeDecodeError解决方法
- 关于使用pyinstaller 打包带有matplotlib 等出现UnicodeDecodeError解决方法
- pyinstaller打包
- PyInstaller打包
- Pyinstaller打包
- pyinstaller打包exe后报fatal error return -1
- Pyinstaller打包运行exe报错 No module named matplotlib.backends.backend_tkagg
- pyinstaller打包python
- !!!pyinstaller 打包 python
- PyInstaller打包python程序
- pyinstaller打包python步骤
- pyinstaller打包数据
- Pyinstaller打包python代码
- pyinstaller打包exe错误
- 【蓝桥杯】【字符排序】
- 重新做人,记录人生
- 设计新手最常见的4个问题
- [Unity][LUA][SLUA]选择LUA库导入Unity中
- 简易手风琴
- Pyinstaller打包matplotlib error总结
- 浅谈移动端的自适应问题——响应式、rem/em、利用Js动态实现移动端自适应
- 【web前端开发】浏览器兼容性处理大全
- 车牌识别api接口—移动端安卓、iOS系统的OCR技术
- java异常语句的执行顺序
- python 常用关键字总结 壹
- sqoop学习笔记
- js事件冒泡
- 第六章 SpringCloud Zuul网关