在公司的内网上跑pyecharts生成的html,打开后是空白的。

原因:pyecharts会自动去https://assets.pyecharts.org/assets/上拉取js,不联网的情况下就获取不到文件,所以出不了图。

参考了网上的教程,但是不能直接解决,需要略作修改。

下面分别对两种场景提出解决方法,一种是python直接跑在物理机上,另外一种是python跑在容器里。

物理主机上运行python

1. 下载pyecharts-assets-master.zip并解压上传到服务器上。

2. 启动本地http服务器,提供文件下载

网上的资料都是说用:

cd pyecharts-assets-master

python -m http.server 

但是笔者试验后,发现需要指定ip才可以:

python -m http.server -b 10.129.xx.xx 8000

3. 验证http server是否正常启动:

如下代表正常启动

 

4. python程序里需要指定从哪里获取文件:

from pyecharts.globals import CurrentConfig
CurrentConfig.ONLINE_HOST = "http://10.129.xx.xx:8000/assets/"

 

容器内运行python

笔者大部分程序都是在容器内部署的,所以需要搞定跑在容器内的程序,如何用pyecharts画图。

1. 启动http server:

尝试了在容器内部启动server,但是不管指定什么ip,都不行。

目前可行的是在物理机上使用物理机本机的ip启动http server,不在物理机上,只要在一个局域网内,也是可以的。

2. python脚本

CurrentConfig.ONLINE_HOST与启动http server的IP一致。

经过验证,这样可以出图。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐