在离线使用 Pyechart 进行可视化数据绘图的时候,会有生成的 html 网页打不开,或者是网页不出图像,是一个空白页面的问题出现,搜索发现其主要原因是:由于PyEcharts在升级到1.x版本后,将原来HTML网页中使用到的很多js文件换为了在线获取的方式,例如打开我本地生成的bar.html 示例文件,就会发现利用了 https://assets.pyecharts.org/assets/v5/echarts.min.js 文件,所以才会出现离线环境下打不开网页不出图的情况。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Awesome-pyecharts</title>
<script type="text/javascript" src="https://assets.pyecharts.org/assets/v5/echarts.min.js"></script>
</head>
需要解决这个问题,在pyecharts-gallery-master官网上面已经给出了解决的方案:
一 是下载离线的js文件,也就是pyecharts-assets-master.zip文件,然后将其放到本地的某个文件夹里面;
二 是启动本地服务端,将解压后的pyecharts-assets-maste文件夹设为服务地址;
三 是修改绘图的py源文件,添加使用本地js地址的语句
一、下载离线的 js 文件
GitHub 下载地址:https://github.com/pyecharts/pyecharts-assets
将这个地方的文件下载成为一个 zip 文件,保存至本地的一个指定路径。这个里面包含了大多数示例中所用到的 js 文件。
二、启动本地服务端
其实在github官网上也已经讲述了这些内容:https://github.com/pyecharts/pyecharts-assets
Linux 环境命令:
$ cd pyecharts-assets
$ python -m http.server
windows 环境:
实际上在window环境下就是进入到pyecharts-assets文件夹里面后,按住shift键点击鼠标右键,打开控制台,运行 python -m http.server 一句话即可,该命令将会在本地启动一个默认网址为0.0.0.0,默认端口为8000的广播服务器,从而可以开启js文件的服务;其实,也不一定每次都非要进入到pyecharts-assets文件夹里面启动控制台然后运行启动服务器的命令,还可以利用-d选项设置目录:
# 在当前文件夹目录下默认启动地址为0.0.0.0,端口为8000的服务器
python -m http.server
# 指定一个自定义的本地目录
python -m http.server -d D:\Project\pyecharts-assets-master
# 指定自定义的本地目录,指定自定义的网址和端口
python -m http.server -d D:\Project\pyecharts-assets-master -b 127.0.0.1 8000
实际上也不一定非要0.0.0.0的网址,也可以选择127.0.0.1的本地回路地址,还有就是局域网里面的话,可以指定为局域网服务器的网址。个人的话,是使用了第三个方法,指定了源文件地址和IP地址去启动本地服务。
*Tips:在启动 http.server 的服务之后,不要 ctrl+c 取消,就让这个服务一直挂在这个窗口就行,如果 ctrl+C 取消了服务挂载,在打开 html 文件的时候,还是会显示为空白的 *
三、补充代码
在 Python 的代码源文件中添加如下代码,将 html 文件所需要的 js 文件指向本机的 js 文件地址:
# 配置CurrentConfig.ONLINE_HOST为本机地址资源
from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://127.0.0.1:8000/assets/v5/"
在生成的 html 文件中所调用的 js 文件地址就是本地的 js 服务地址:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Awesome-pyecharts</title>
<script type="text/javascript" src="http://127.0.0.1:8000/assets/v5/echarts.min.js"></script>
</head>
这样之后,在确认本地的 http.server 服务是正常启动中的情况下,生成的可视化图表是可以正常显示的。
仅做个人学习记录。
原文链接:https://blog.csdn.net/u013600870/article/details/112056745
标签:文件,Pyecharts,assets,离线,http,js,本地,pyecharts From: https://www.cnblogs.com/JiurenShang/p/18140890