《Natural Language Processing with Python》读书笔记 004期

编程是切勿急躁,但是也不能慢悠悠啊【手动捂脸】

这章主要都是python的非常基础的知识,有很多BUG也都是非常非常有特点的需要注意的

基本上对于个人来讲没有特别多的新知识了

assert的用法可以再熟悉一下,这个其实有的时候挺有用的,尤其是在学网课进行自我监督时。

函数的docstring突然想起来,自己貌似很少写╮(╯▽╰)╭,这点之后也得注意

引用一段话:

编程是一种技能,需要获得几年的各种编程语言和任务的经验。关键的高层次能力是算法设计及其在结构化编程中的实现。关键的低层次的能力包括熟悉语言的语法结构,以及排除故障的程序(不能表现预期的行为的程序)的各种诊断方法的知识。

pdb这个调试器不怎么用,通常都是用print。


关于NetworkX,这个之前也没有用过,所以上来也是遇到了

AttributeError: module 'networkx' has no attribute 'draw_graphviz'

这个错误,然后参考了网页:
http://python.thenaiveapproach.com/buggy-module-installation-networkx-pygraphviz/
http://www.bubblefertilizer.com/graphviz-pydot-pygraphviz-networkx-matplotlib-phylo-tree.html
个人电脑室win10系统,所以去官网下载windows的.msi文件:https://graphviz.gitlab.io/_pages/Download/Download_windows.html
安装简介参照:https://blog.csdn.net/lanchunhui/article/details/49472949
然后就是pygraphviz这个库的安装了,这个就非常的麻烦了,我们都知道如果看见microsoft visual c++ 14.0 is required的报错,尽量都是避免安装这个控件,而是直接去: https://www.lfd.uci.edu/~gohlke/pythonlibs寻找对应python的对应whl,但是pygraphviz真的目前只支持到python3.4,这也是很有趣,为什么NLTK官网是以python3.4为主题……于是问题就变得麻烦了,目前肯定是还没有继续安装Microsoft Visual Studio的打算。
赶紧继续查了一下版本问题,目前可以直接看到draw_graphviz函数存在是因为网上目前使用的NetworkX版本为1.11.0或者1.10.0,所以这个就很奇妙了,然后去2.0的官网看了一下https://networkx.github.io/documentation/stable/release/release_2.0,赫然写着:

Remove draw_graphviz function. Fixes #1997 (#2077)

我……emmm,手动微笑
于是,去stackoverflow重新搜索了问题:https://stackoverflow.com/questions/41047362/python-networkx-error-module-networkx-drawing-has-no-attribute-graphviz-layo
终于解决,只要直接用draw这个函数就好了,不用管其他的。

真是的……不明所以,这个也算是吃了一次教训,因为版本的原因,我应该在这种函数普通搜索没有结果之前,先去到官网doc里面寻找一遍,然后再重新搜索问题。希望本文章能够帮到足够多的人,不再受到网上过时代码的影响。

程序这种东西发展速度真得是很快,完全没有预料到会有这么多issue,也是感慨一番。前些日子看到有人说程序员比常人的优势之一在于:能够更快、高效地使用搜索引擎掌握解决BUG的方法。果然是经验之谈,而且非常有道理,修行还将继续。

猜你喜欢

转载自blog.csdn.net/bright_silmarillion/article/details/81158886
今日推荐