Windows环境下Python中wordcloud的使用——自己踩过的坑 2017.08.08

Python-wordcloud-初次尝试

作为一个Python初学者,作为学习的开始,这次我根据《一件有趣的事:用Python 爬了爬自己的微信朋友》中的方法测试了一遍效果。这里记录下目前用的wordcloud这个包时遇到的一些问题吧。(具体执行的完整代码我就不放进来了,反正也是依据链接中写的为主。)

使用wordcloud可以方便地生成云词图,这在数据可视化的方面会给我们带来很多便利。

看别人教程写的各种顺,然而实际操作起来才发现,初学者还是容易遇到很多坑。


说明

环境:

已安装Anaconda3 (64-bit) 4.4.0Python 3.6.1)。其中,代码调试在Spyder 3.1.4中进行,安装包则直接打开Anaconda Prompt调用cmd.exe后进行。

系统为Windows 7 和 Windows 10。


安装包的坑

安装文件的获取

首先,安装包时,直接用 pip install wordcloud是会报错的,会有文件缺失的问题。这一点不少人都有类似反馈。

解决方案:

github下载wordcloud的包,解压缩后,在对应目录下用python setup.py install安装。

VC++ 14的缺失问题

安装wordcloud时出现报错信息:

error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools

这种情况下,其实直接跟着提示内容进行就好。

解决方案:

打开报错提示中的链接,下载并安装Visual C++ 2015 Build Tools

这个问题,我在一台电脑上这样解决(成功安装了wordcloud包并正常调试了相关Python代码)之后,尝试在另一台电脑上再安装该包,结果出现了新问题:Visual C++ 2015 Build Tools,从官网下载下来的安装程序visualcppbuildtools_full.exe,打开后在安装过程中需要联网获取文件,但是由于网络限制导致无法获取,于是无法安装!并且没有搜到含有完整安装文件的包。(注:该电脑所处的网络环境不一样,一般网页中的文件下载没问题,但是build tools安装时联网获取文件就受限制而不成功。)

离线安装VC++14.0 build tools的解决方案:

  • 在能正常通过visualcppbuildtools_full.exe 联网获取安装文件的电脑上,在系统自带的cmd.exe中在对应目录下执行:
visualcppbuildtools_full.exe /layout

之后,选择下载目录存放离线安装包,然后就可以把安装文件下载下来了。

  • 然后在不能联网安装的电脑上,安装离线包即可。

此处是参考msdn上找到的方法。

其它尝试

当遇到安装Visual C++ 2015 Build Tools无法获取安装文件时(visualcppbuildtools_full.exe 只有3M,却提示默认安装的话需要4G空间,可想而知需要下载不少安装文件,实际上最后下载的安装文件也有2G左右),曾经尝试过是否可以不安装4G这么大的build tools而只安装VC++14的运行库,毕竟应该只是缺库吧?

毕竟,实际上运行库Microsoft Visual C++ 2015 Redistributable Update 3下载链接在此)的安装程序只有十几M大小,并且能够正常下载安装。

但我试下来的结果是,安装了这个东西以后依然会有前面一样的报错。所以还是继续老老实实下载了完整的build tools。如果你有更好的方案(不用安装这个占4G左右的大家伙,不用借助另一个网络环境下的电脑),可以和我留言。

备注

github下载到的原wordcloud安装包中,提到如果安装还是有问题的的话可以试试安装链接中的.whl文件。

不过,我是没下载这个.whl文件的,前面讲到的坑补完就好了。


字体的坑

Win10和Win7的默认字体后缀竟然不一样

生成云词图的过程中,自己设置字体为“微软雅黑 粗体”,在系统(Win10)路径中找到了这个字体的路径“C:\Windows\Fonts\msyhbd.ttc”

没想到,代码复制到第二台电脑(Win7)下执行时却报错。本来以为都是Windows默认库里的字体应该没什么问题,打开一看才发现Win7这里的字体后缀是“ttf”

改过就正常了。

提醒以后注意:

哪怕是Windows上执行过没问题的代码,换个同样Windows的电脑,也要注意 系统默认路径和相关文件 是否有变化!

并不是全默认就都一样啊啊啊啊!!!


遮罩底图的坑

错误提示Gray-scale?

NotImplementedError: Gray-scale images TODO

一开始,我用的底图会出现如上报错。

如果把出错的如下这行

plt.imshow(my_wc.recolor(color_func=i_colors))

去掉,那么就不会报错,但是生成的云词图会只有形状、没有原图的颜色。

出现报错时用的底图如下:
用这个图会报错

这个图片有什么问题呢?为什么会有“Gray-scale images”这种提示,难道我这个图的灰度有问题?明明好几个颜色啊好吗?甚至我专心弄了个纯黑白的图,发现纯黑白色底图都能正常执行代码。

不过,把上面出错的图,和两个不出错的图对比一下读取后的数据,就能看出问题在哪里了。

如下图所示:

coloring0=np.array(Image.open("出错图.png")) #问题图,实际上,下面的白底“底图1”就是将该图直接截图保存生成的
coloring1=np.array(Image.open(
  • 49
    点赞
  • 165
    收藏
    觉得还不错? 一键收藏
  • 24
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值