鱼C论坛

 找回密码
 立即注册
查看: 3764|回复: 1

[技术交流] pyinstaller打包pyecharts程序运行报错的解决方法

[复制链接]
发表于 2020-5-25 17:25:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 txxcat 于 2020-5-25 17:43 编辑

    pyinstaller打包pyecharts程序后运行报错,这是pyinstaller不兼容pyecharts导致,无论0.5之前还是1.x的版本都会这样。
    先在网上找了段代码进行打包工作,运行环境是:win10 64 + python3.8.2 + pyecharts1.71,代码如下:
  
import pyecharts.options as opts
from pyecharts.charts import Bar

attr = ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
v1 = [5, 20, 36, 10, 75, 90]
v2 = [10, 25, 8, 60, 20, 80]

bar = (
Bar()
.add_xaxis(attr)
.add_yaxis("商家A", v1, stack="stack1")
.add_yaxis("商家B", v2, stack="stack1")
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(title_opts=opts.TitleOpts(title="柱状图数据堆叠示例"))
)

bar.render()
    打包命令是:
  
pyinstaller test.py
    没有加入任何参数,是为了好调试,这个默认是使用-D参数,打包成多个文件。然后运行打包好的程序,会报一大摞的错误,一般来说,我们只需要关心最后几行。
    批注 2020-05-25 161820.png
    提示:No such file or directory: 'D:\\temp\\dist\\test\\pyecharts\\datasets\\map_filename.json',查了一下,这个json文件在python第三方包目录下的pyecharts\datasets\下,一起的还有三个json文件,按错误提示的路径在打包文件的目录下建立pyecharts目录,然后把datasets目录整个拷贝过来。
    然后再运行程序,又报错。
    批注 2020-05-25 161939.png
    和刚才的不同:jinja2.exceptions.TemplateNotFound: simple_chart.html。再次查找 ,simple_chart.html在pyecharts\render\templates\下,为了保证完整目录结构,把整个render拷贝到刚才建立的pyecharts目录下,再次运行,没有报错,生成了正确的文件,问题解决。
    批注 2020-05-25 174054.png
    总结一下,pyinstaller没有把pyecharts的一些数据模版文件拷贝过来导致错误,拷贝过来即可,如下图那两个目录,不过这个修改只适用于-D参数打包的情形,-F整体打包就不行了,只能等pyinstaller来修正这个bug了。
    批注 2020-05-25 163955.png
    上面的目录拷贝到下面即可。
    批注 2020-05-25 162931.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 17:37:14 | 显示全部楼层
沙发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 01:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表