尝试用pyecharts画个柱状图,需要使用到Bar,可是import的时候报错:cannot import name 'Bar' from 'pyecharts'。
大家都说0.1.9.4可以正常运行,但是当前最新版本就不可以。
比较了下__init__.py,新版本比0.1.9.4少了很多导入的内容,姑且认为新版本比老版本轻了很多,许多本来应该内置的包不在里面提供了;
几个可以参考的思路:
1. 安装回0.1.9.4的版本(参考https://blog.csdn.net/weixin_42741271/article/details/90343159)
pip uninstall卸载当前的版本(现在应该是1.5.0),重新pip install pyecharts==0.1.9.4;
或者直接上git下载等等等,没有作用;在安装的时候也一直出现time out错误,没有细究原因;
2. 在当前最新包的__init__.py里手动补充上哪些本来应该内置的包(参考0.1.9.4的__init__.py文件)
3. 不就是没有Bar嘛,直接pip install Bar装一个
再次尝试,依然报错;
4. 改变导入方式,使用from pyecharts.charts import Bar(参考的是https://blog.csdn.net/shaooping/article/details/90316540的方法)
简而言之就是新版本的导入方式有变化,而旧版本也不再维护了。
看起来奏效了。敲个案例试试。
from pyecharts.charts import Bar
bar = Bar("我的第一个图表", "这里是副标题")
bar.add("服装", ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"], [5, 20, 36, 10, 75, 90])
在Bar和bar处依然报错,但是错误已经变了:Too many positional arguments for constructor call
说明import奏效了~
解决剩余的报错。
因为是报参数太多,删除了后面的“这里是副标题”,报错果然消失了,换了下一行的报错:Instance of 'Bar' has no 'add' member
所以猜测新版本不止导入方式不同,方法和参数应该都有修改,所以不用纠结了,直接去阅读文档~