20 Mac 的Python 编程环境

0 缘起

一直想再学一种语言。大学里学过 BASIC,工作后学了FORTRAN 和 Pascal,也用来解决工作中的计算问题。这么多年过去了,FORTRAN 几乎绝迹,Delphi 也日渐式微。曾经有学习 C++的想法,但是不知道什么原因,总是不喜欢C++,看上去别扭。于是学习C++就不了了之了。

1 选择了 Python

就像说不出什么理由不喜欢C++,也不知道为什么看到 Python 就突然喜欢上了。感到这就是自己要学的那门语言,那就开始学吧。

我的便携机是Mac book pro,安装的系统是masOS High Sierra 10.13.1 。Python 有两个版本2和3。如果不需要Python 3,Mac缺省状态下,已经有了Python 2.7.10 版本,打开终端就,可以执行Python输入了。

但是使用终端也就是测试一下 print “hello world”,没有什么大的用处。至于视频上教的使用 Shell 的办法也不是什么长久之计。所以还是需要有Python 的编程环境。

2工作目录

不管安装什么编程环境,还是要把工作目录确定下来。工作目录主要用来存放学习过程中的源代码。搞清楚当前的目录还是很重要的。特别是以后版本管理,使用git,都是基于这个目录。目录也不要太深了,这样改变目录比较麻烦。

在终端键入 pwd 命令确定当前的目录,用 cd 改变当前的目录。

3 下载

先要解决下载的问题。无论是软件还是参考文献,下载很慢或者很啰嗦的话是一件很不爽的事情。

迅雷下载应该是不错的,而且是会员,网络带宽有保障,应该没有什么问题,但是,新版本有很多限制,让人很不舒服。而且,即便是会员,有些下载内容就是莫名其妙的龟速。

网上推荐安装 Aria2。也是这个安装还是需要有些折腾。具体安装方法可以参考一下 https://yalv.me/aria2/

安装好了 Aria2 以后,在使用过程中发现, 其实 Aria2 也不是万能的,也不一定速度就快,还是要看具体情况。

不过有了迅雷下载和 Aria2,下载应该好得多。

4 参考资料和源代码下载和管理

我的体会是学习语言的最好办法其实就是找一本适合你学习的编程书,这本编程书又要有大量的源代码可以让你理解书上讲过的内容。于是你就得需要在下载的电子书里慢慢去找,然后参考网上的介绍文章作者的推荐。

下载的内容多了需要进行管理。

于是,开始解决网络电子文件的管理问题。按照网络上的推荐,安装了 DENOVthing Pro 和 Zotero。使用后发现,二者各有长短。

DENOVthing Pro 比较复杂,而我只要存储网页上的相关页面就可以了。用不了这么多功能。但是从浏览器上点击插件,就可以方便地将文件转到DENOVthing Pro ,这点就足够吸引我使用了。

Zotero主要是存储空间不够,缺省状态下,下载的电子书都存在Storage的子目录下。网上介绍可以在Storage存储文件的链接,而把文件存在网盘的目录下。但是折腾了好久都没法实现。

通过一段时间的摸索,最终按照 DENOVthing Pro 按照内容进行分类,用来管理网上的文章。

而 Zotero 用来管理电子书籍,把下载的电子书(主要是PDF格式)放在网络的云盘对应的目录下,在 Zotero 中只设置电子书的链接。这样Zotero 就不存储电子书,只保管电子书相应的链接。但是,实际使用的效果是一样的。

5 找一本合适的入门书

有了电子书,进行快速浏览后,最后选择了廖雪峰的 《Python 3 基础教程》比较适合自己学习。廖雪峰也有相应的 《Python 2 基础教程》。从发展的角度,总是要使用高版本吧,所以就选了Python 3 。这本书把 Python 基本的要点都涉及了,讲的很清楚。而且还有配套的源代码。这样,在看书的同时,运行相应的源代码,效果很好。

顺便说一下电子书的版本和使用。

参考的电子文档有好多格式:doc、pdf、txt、mobi、azw3、epub。doc用Word打开,txt用Mac自带的“文本编辑”打开,mobi 和 azw3 用Kindle打开,epub用ibook打开。

点击 epub 文章,便携机安装的ibook打开后,就会加入到其中的“图书馆”,这样,在你的iPhone或者iPad的ibook中也有了这本书,条件是都使用同样的Apple id。

点击 mobi 或者 azw3 文章,便携机安装的Kindle软件打开后,也会加入到其中的“图书馆”,这样,在你的实体的Kindle中也有了这本书,条件是都使用相同的账户登录。这样做的好处是,不需要用usb线连接便携机,把文档传入实体kindle中去。但是PDF文件似乎不能这样做。

下载的大多数电子书用pdf格式,用 skim 可以选择其中的文字或者代码段。当然,扫描版的pdf是无法这样做的。所以,安装打开电子文档的软件就用 skim 了。

6 使用Git和GitHub版本管理

有了源代码,并且对源代码进行修改,就势必涉及对代码进行版本管理,于是就转向研究 GitHub 和 Git。

先前也打开过 GitHub,总是一头雾水。这次,在上面注册了,然后再仔细地慢慢地研究,也就逐渐熟悉了。

然后就是学习Git。

学习 Git 折腾了一段时间。其实,关键还是要搞清楚工作区(Working direction)、暂存区(Staging Aera)、仓库区(Respository)和远程仓库(Remote)的概念和关系。

在自己的工作目录(其实就是工作区)下运行

Git init

就创建了.git的隐藏子目录(其实就是暂存区),使用

git add 文件名

就是把指定的文件存到暂存区,再用

git commit -m “递交说明”

的命令把存入的文件送到仓库区。用

git status

检查文件是否修改,用

git diff 文件名

的命令检查文件修改的内容。检查版本修改的历史用

git log (--petty = oneline) 版本id。

在GitHub注册后,需要在上面建立远程仓库。然后使用

git remote add origin 位置

将本地的仓库和远程仓库关联。这样就可以将本地仓库区的内容推送到远程库。
第一次推送使用

git push -u origin master

以后推送使用

git push origin master

git remote (-v)

的命令检查远程仓库。

因为是自己研究学习,不涉及到团队的版本更新,所以其他的内容可以暂时放一下。

需要注意的是,工作目录最好保持固定,如果移动了,重新建立本地仓库与远程仓库关联不是说不可能,只是有麻烦。

为了获得《Python 3 基础教程》对应的源代码,先搜索 “learn-python3”,然后使用

git clone “链接”

命令下载到自己的工作目录。

6 Python的编程环境选项

到现在为止,下载了相关的书,在其中找到了适合自己学习的一本书。并且找到了和这本书相应的源代码。

万事俱备,就等着开工了!

但是接下来的任务才是正题:搭建Python源代码运行的环境。所谓搭建运行环境,就是选择安装Python编程环境软件了。

按照网上介绍,可供选择的方案有PyCharm、SubLime text 3、VSCode。还有一种办法是 使用 jupyter notebook ,的确有时候还真的需要这样的环境。当然,采用 shell 也是一种选项,只是不去考虑罢了。

先安装了PyCharm。安装后,其实就可以使用了Python 2.7了。

但是,有选项的话,总得选择一下自己喜欢的。麻烦就在选择的过程,其实是非常折腾的。记下来既是给自己一个记录,以免日后遗忘,也是分享给需要的人,避免走弯路。

7. Anaconda Navigator 安装

其实,在Python的编程环境选择过程中,有过很多摸索,有时一个问题搞不定,就只能找相关资料。EZ发现我在这一过程中似乎有些沮丧,就提供了我一条线索,说是安装 Anaconda Navigator 后,自带了一个编辑器。安装后,发现编辑器是Spyder 3 。其实好好使用还是不错的,可是,在试用SubLime text 3、VSCode过程中,已经被这些应用的所谓“颜值”毒害了,感觉一点都不喜欢。但是安装Anaconda Navigator 过程中,安装了Anaconda的2.7版本和3.6版本。不曾想在SubLime text 3、VSCode 居然都可以调用。所以转回来继续研究SubLime text 3、VSCode。

8. SubLime text 3 安装

关于SubLime text 3的安装,网上介绍很多,而且都推荐增加很多包。回过头来看,其实关键是可以运行。在运行上折腾了很久,很多情况下是安装了太多的包,这些包究竟有什么用途,包和包之间会不会有冲突,都不清楚。一度甚至连 Command+b 都不起作用,这样程序就无法执行,更不要说在交互环境下,需要输入 “input”的内容。于是几乎想放弃了。慢慢琢磨其实发现,只要少量的安装包就可以了,包括Package Control、Anaconda、SublimeREPL、Python 3、ChineseLocalizitions。
Package Control是用来管理包的,必须装;Anaconda 用来控制 2.7 和3.6版本;SublimeREPL 用来 “input”交互问题的;Python 3用来运行Python 3;ChineseLocalizitions 解决菜单汉化的问题。照理说没有必要汉化菜单,但是不装 Command+b 不起作用,这是一个奇怪的问题。
SublimeREPL 安装后使用有些麻烦,需要设置一个快捷键,可以搜一下网上介绍的文章。我把快捷键设置到 Command+q,这样没有交互的情况使用Command+b,有交互使用Command+q。自己感觉很方便。
总结一下安装SubLime text 3的流程:

  1. 安装SubLime text 3 并安装注册码
  2. 安装Package Control
  3. 利用Package Control安装其他的包
  4. 设置SublimeREPL的快捷键

折腾了这么久,归结成上面四条,也算是“删繁就简”了。

9. VS Code 安装

VS Code 是微软的产品。这是被网友评价为“颜值”最高的编辑器。按照“删繁就简”的原则,留下的包,包括:Python、Python for VScode、MagicPython。运行的方法也简单,在程序框里,鼠标右键后,选择“Run Python File in Terminal”就可以了。VS Code 自带了git,这是下一步需要研究的。

9. PyCharm 的使用

PyCharm是最早安装的,但是一直不受待见。其实,PyCharm使用是最方便的。而且可以在 Mac 自带的 Python 2.7.4、Anaconda的2.7和3.6 之间切换。使用其实非常方便,打开工作目录,选中需要运行的程序,右键选择“run”。如果没有交互而且程序没有错误,程序就自动执行完毕,如果有交互,提示输入,然后执行,非常流畅。如果Python版本不同,在“Project interpreter”中选择。

10. 结语

初始目标是“选择一本合适的教程和对应的源代码,在合适的编程环境下运行”。经过许多折腾,走了很多弯路,这个目标总算达成。三个选项都能满足要求,最让人放心使用的还是pyCharm,至于 VS code 和 Sublime Text 3也是不错的选择。打开教程,在编程环境中打开相应的源代码,这样的学习模式,真的还是不错的。

初步学习后,试着编了一个小程序,用来计算新股收益的。输入中签的价格、中签的股数和计算涨停板的天数,就可以计算逐天的涨幅、股价、累积涨幅、累积收益。

屏幕快照 2017-11-22 下午12.06.37.png
屏幕快照 2017-11-22 下午12.07.45.png

但是,这只是初步的。还有很多问题需要解决:

  1. Python 的继续深入学习
  2. 编程环境的设置和包的安装
  3. 整合到环境中的git的使用
  4. 软件库的使用
  5. 爬虫和量化的学习和使用

诸如此类,还需要继续“折腾”和学习。体会是

  1. “工欲善其事、必先利其器”
  2. 有时候慢是为了后续的快
  3. 只有解决目标所关联的主要问题,才能达到初定的目标
  4. 把非关键的问题先放在一边
  5. 删繁就简

对那些毫无保留无私奉献自己所学所得内容的、不曾见面的知识提供者,我总是怀着深深的敬意。因为你们的分享,让我快速地学到了不少从未接触到的新内容,否则,我会在探索的路上走得很慢,甚至会走错方向。谢谢你们,我的朋友!
本文作者

2017.11.17 上海.风雨夜
2017.11.28 编写完成