|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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()
复制代码
打包命令是:
没有加入任何参数,是为了好调试,这个默认是使用-D参数,打包成多个文件。然后运行打包好的程序,会报一大摞的错误,一般来说,我们只需要关心最后几行。
提示:No such file or directory: 'D:\\temp\\dist\\test\\pyecharts\\datasets\\map_filename.json',查了一下,这个json文件在python第三方包目录下的pyecharts\datasets\下,一起的还有三个json文件,按错误提示的路径在打包文件的目录下建立pyecharts目录,然后把datasets目录整个拷贝过来。
然后再运行程序,又报错。
和刚才的不同:jinja2.exceptions.TemplateNotFound: simple_chart.html。再次查找 ,simple_chart.html在pyecharts\render\templates\下,为了保证完整目录结构,把整个render拷贝到刚才建立的pyecharts目录下,再次运行,没有报错,生成了正确的文件,问题解决。
总结一下,pyinstaller没有把pyecharts的一些数据模版文件拷贝过来导致错误,拷贝过来即可,如下图那两个目录,不过这个修改只适用于-D参数打包的情形,-F整体打包就不行了,只能等pyinstaller来修正这个bug了。
上面的目录拷贝到下面即可。
|
|