20 Mac 的Python 編程環(huán)境

0 緣起

一直想再學(xué)一種語(yǔ)言熄浓。大學(xué)里學(xué)過(guò) BASIC情臭,工作后學(xué)了FORTRAN 和 Pascal,也用來(lái)解決工作中的計(jì)算問(wèn)題赌蔑。這么多年過(guò)去了俯在,F(xiàn)ORTRAN 幾乎絕跡,Delphi 也日漸式微娃惯。曾經(jīng)有學(xué)習(xí) C++的想法朝巫,但是不知道什么原因,總是不喜歡C++石景,看上去別扭劈猿。于是學(xué)習(xí)C++就不了了之了。

1 選擇了 Python

就像說(shuō)不出什么理由不喜歡C++潮孽,也不知道為什么看到 Python 就突然喜歡上了揪荣。感到這就是自己要學(xué)的那門語(yǔ)言,那就開始學(xué)吧往史。

我的便攜機(jī)是Mac book pro仗颈,安裝的系統(tǒng)是masOS High Sierra 10.13.1 。Python 有兩個(gè)版本2和3。如果不需要Python 3挨决,Mac缺省狀態(tài)下请祖,已經(jīng)有了Python 2.7.10 版本,打開終端就脖祈,可以執(zhí)行Python輸入了肆捕。

但是使用終端也就是測(cè)試一下 print “hello world”,沒有什么大的用處盖高。至于視頻上教的使用 Shell 的辦法也不是什么長(zhǎng)久之計(jì)慎陵。所以還是需要有Python 的編程環(huán)境。

2工作目錄

不管安裝什么編程環(huán)境喻奥,還是要把工作目錄確定下來(lái)席纽。工作目錄主要用來(lái)存放學(xué)習(xí)過(guò)程中的源代碼。搞清楚當(dāng)前的目錄還是很重要的撞蚕。特別是以后版本管理润梯,使用git,都是基于這個(gè)目錄甥厦。目錄也不要太深了纺铭,這樣改變目錄比較麻煩。

在終端鍵入 pwd 命令確定當(dāng)前的目錄矫渔,用 cd 改變當(dāng)前的目錄彤蔽。

3 下載

先要解決下載的問(wèn)題摧莽。無(wú)論是軟件還是參考文獻(xiàn)庙洼,下載很慢或者很啰嗦的話是一件很不爽的事情。

迅雷下載應(yīng)該是不錯(cuò)的镊辕,而且是會(huì)員油够,網(wǎng)絡(luò)帶寬有保障,應(yīng)該沒有什么問(wèn)題征懈,但是石咬,新版本有很多限制,讓人很不舒服卖哎。而且鬼悠,即便是會(huì)員,有些下載內(nèi)容就是莫名其妙的龜速亏娜。

網(wǎng)上推薦安裝 Aria2焕窝。也是這個(gè)安裝還是需要有些折騰。具體安裝方法可以參考一下 https://yalv.me/aria2/ 维贺。

安裝好了 Aria2 以后它掂,在使用過(guò)程中發(fā)現(xiàn), 其實(shí) Aria2 也不是萬(wàn)能的溯泣,也不一定速度就快虐秋,還是要看具體情況榕茧。

不過(guò)有了迅雷下載和 Aria2,下載應(yīng)該好得多客给。

4 參考資料和源代碼下載和管理

我的體會(huì)是學(xué)習(xí)語(yǔ)言的最好辦法其實(shí)就是找一本適合你學(xué)習(xí)的編程書用押,這本編程書又要有大量的源代碼可以讓你理解書上講過(guò)的內(nèi)容。于是你就得需要在下載的電子書里慢慢去找起愈,然后參考網(wǎng)上的介紹文章作者的推薦只恨。

下載的內(nèi)容多了需要進(jìn)行管理。

于是抬虽,開始解決網(wǎng)絡(luò)電子文件的管理問(wèn)題官觅。按照網(wǎng)絡(luò)上的推薦,安裝了 DENOVthing Pro 和 Zotero阐污。使用后發(fā)現(xiàn)休涤,二者各有長(zhǎng)短。

DENOVthing Pro 比較復(fù)雜笛辟,而我只要存儲(chǔ)網(wǎng)頁(yè)上的相關(guān)頁(yè)面就可以了功氨。用不了這么多功能。但是從瀏覽器上點(diǎn)擊插件手幢,就可以方便地將文件轉(zhuǎn)到DENOVthing Pro 捷凄,這點(diǎn)就足夠吸引我使用了。

Zotero主要是存儲(chǔ)空間不夠围来,缺省狀態(tài)下跺涤,下載的電子書都存在Storage的子目錄下。網(wǎng)上介紹可以在Storage存儲(chǔ)文件的鏈接监透,而把文件存在網(wǎng)盤的目錄下桶错。但是折騰了好久都沒法實(shí)現(xiàn)。

通過(guò)一段時(shí)間的摸索胀蛮,最終按照 DENOVthing Pro 按照內(nèi)容進(jìn)行分類院刁,用來(lái)管理網(wǎng)上的文章。

而 Zotero 用來(lái)管理電子書籍粪狼,把下載的電子書(主要是PDF格式)放在網(wǎng)絡(luò)的云盤對(duì)應(yīng)的目錄下退腥,在 Zotero 中只設(shè)置電子書的鏈接。這樣Zotero 就不存儲(chǔ)電子書再榄,只保管電子書相應(yīng)的鏈接狡刘。但是,實(shí)際使用的效果是一樣的不跟。

5 找一本合適的入門書

有了電子書颓帝,進(jìn)行快速瀏覽后,最后選擇了廖雪峰的 《Python 3 基礎(chǔ)教程》比較適合自己學(xué)習(xí)。廖雪峰也有相應(yīng)的 《Python 2 基礎(chǔ)教程》购城。從發(fā)展的角度吕座,總是要使用高版本吧,所以就選了Python 3 瘪板。這本書把 Python 基本的要點(diǎn)都涉及了吴趴,講的很清楚。而且還有配套的源代碼侮攀。這樣锣枝,在看書的同時(shí),運(yùn)行相應(yīng)的源代碼兰英,效果很好撇叁。

順便說(shuō)一下電子書的版本和使用。

參考的電子文檔有好多格式:doc畦贸、pdf陨闹、txt、mobi薄坏、azw3趋厉、epub。doc用Word打開胶坠,txt用Mac自帶的“文本編輯”打開君账,mobi 和 azw3 用Kindle打開,epub用ibook打開沈善。

點(diǎn)擊 epub 文章乡数,便攜機(jī)安裝的ibook打開后,就會(huì)加入到其中的“圖書館”矮瘟,這樣瞳脓,在你的iPhone或者iPad的ibook中也有了這本書塑娇,條件是都使用同樣的Apple id澈侠。

點(diǎn)擊 mobi 或者 azw3 文章,便攜機(jī)安裝的Kindle軟件打開后埋酬,也會(huì)加入到其中的“圖書館”哨啃,這樣,在你的實(shí)體的Kindle中也有了這本書写妥,條件是都使用相同的賬戶登錄拳球。這樣做的好處是,不需要用usb線連接便攜機(jī)珍特,把文檔傳入實(shí)體kindle中去祝峻。但是PDF文件似乎不能這樣做。

下載的大多數(shù)電子書用pdf格式,用 skim 可以選擇其中的文字或者代碼段莱找。當(dāng)然酬姆,掃描版的pdf是無(wú)法這樣做的。所以奥溺,安裝打開電子文檔的軟件就用 skim 了辞色。

6 使用Git和GitHub版本管理

有了源代碼,并且對(duì)源代碼進(jìn)行修改浮定,就勢(shì)必涉及對(duì)代碼進(jìn)行版本管理相满,于是就轉(zhuǎn)向研究 GitHub 和 Git。

先前也打開過(guò) GitHub桦卒,總是一頭霧水立美。這次,在上面注冊(cè)了方灾,然后再仔細(xì)地慢慢地研究悯辙,也就逐漸熟悉了。

然后就是學(xué)習(xí)Git迎吵。

學(xué)習(xí) Git 折騰了一段時(shí)間躲撰。其實(shí),關(guān)鍵還是要搞清楚工作區(qū)(Working direction)击费、暫存區(qū)(Staging Aera)拢蛋、倉(cāng)庫(kù)區(qū)(Respository)和遠(yuǎn)程倉(cāng)庫(kù)(Remote)的概念和關(guān)系。

在自己的工作目錄(其實(shí)就是工作區(qū))下運(yùn)行

Git init

就創(chuàng)建了.git的隱藏子目錄(其實(shí)就是暫存區(qū))蔫巩,使用

git add 文件名

就是把指定的文件存到暫存區(qū)谆棱,再用

git commit -m “遞交說(shuō)明”

的命令把存入的文件送到倉(cāng)庫(kù)區(qū)。用

git status

檢查文件是否修改圆仔,用

git diff 文件名

的命令檢查文件修改的內(nèi)容垃瞧。檢查版本修改的歷史用

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

在GitHub注冊(cè)后坪郭,需要在上面建立遠(yuǎn)程倉(cāng)庫(kù)个从。然后使用

git remote add origin 位置

將本地的倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)。這樣就可以將本地倉(cāng)庫(kù)區(qū)的內(nèi)容推送到遠(yuǎn)程庫(kù)歪沃。
第一次推送使用

git push -u origin master

以后推送使用

git push origin master

git remote (-v)

的命令檢查遠(yuǎn)程倉(cāng)庫(kù)嗦锐。

因?yàn)槭亲约貉芯繉W(xué)習(xí),不涉及到團(tuán)隊(duì)的版本更新沪曙,所以其他的內(nèi)容可以暫時(shí)放一下奕污。

需要注意的是,工作目錄最好保持固定液走,如果移動(dòng)了碳默,重新建立本地倉(cāng)庫(kù)與遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)不是說(shuō)不可能贾陷,只是有麻煩。

為了獲得《Python 3 基礎(chǔ)教程》對(duì)應(yīng)的源代碼嘱根,先搜索 “l(fā)earn-python3”昵宇,然后使用

git clone “鏈接”

命令下載到自己的工作目錄。

6 Python的編程環(huán)境選項(xiàng)

到現(xiàn)在為止儿子,下載了相關(guān)的書瓦哎,在其中找到了適合自己學(xué)習(xí)的一本書。并且找到了和這本書相應(yīng)的源代碼柔逼。

萬(wàn)事俱備蒋譬,就等著開工了!

但是接下來(lái)的任務(wù)才是正題:搭建Python源代碼運(yùn)行的環(huán)境愉适。所謂搭建運(yùn)行環(huán)境犯助,就是選擇安裝Python編程環(huán)境軟件了。

按照網(wǎng)上介紹维咸,可供選擇的方案有PyCharm剂买、SubLime text 3、VSCode癌蓖。還有一種辦法是 使用 jupyter notebook 瞬哼,的確有時(shí)候還真的需要這樣的環(huán)境。當(dāng)然租副,采用 shell 也是一種選項(xiàng)坐慰,只是不去考慮罷了。

先安裝了PyCharm用僧。安裝后结胀,其實(shí)就可以使用了Python 2.7了。

但是责循,有選項(xiàng)的話糟港,總得選擇一下自己喜歡的。麻煩就在選擇的過(guò)程院仿,其實(shí)是非常折騰的秸抚。記下來(lái)既是給自己一個(gè)記錄,以免日后遺忘意蛀,也是分享給需要的人耸别,避免走彎路健芭。

7. Anaconda Navigator 安裝

其實(shí)县钥,在Python的編程環(huán)境選擇過(guò)程中,有過(guò)很多摸索慈迈,有時(shí)一個(gè)問(wèn)題搞不定若贮,就只能找相關(guān)資料省有。EZ發(fā)現(xiàn)我在這一過(guò)程中似乎有些沮喪,就提供了我一條線索谴麦,說(shuō)是安裝 Anaconda Navigator 后蠢沿,自帶了一個(gè)編輯器。安裝后匾效,發(fā)現(xiàn)編輯器是Spyder 3 舷蟀。其實(shí)好好使用還是不錯(cuò)的,可是面哼,在試用SubLime text 3野宜、VSCode過(guò)程中,已經(jīng)被這些應(yīng)用的所謂“顏值”毒害了魔策,感覺一點(diǎn)都不喜歡匈子。但是安裝Anaconda Navigator 過(guò)程中,安裝了Anaconda的2.7版本和3.6版本闯袒。不曾想在SubLime text 3虎敦、VSCode 居然都可以調(diào)用。所以轉(zhuǎn)回來(lái)繼續(xù)研究SubLime text 3政敢、VSCode其徙。

8. SubLime text 3 安裝

關(guān)于SubLime text 3的安裝,網(wǎng)上介紹很多喷户,而且都推薦增加很多包擂橘。回過(guò)頭來(lái)看摩骨,其實(shí)關(guān)鍵是可以運(yùn)行通贞。在運(yùn)行上折騰了很久,很多情況下是安裝了太多的包恼五,這些包究竟有什么用途昌罩,包和包之間會(huì)不會(huì)有沖突,都不清楚灾馒。一度甚至連 Command+b 都不起作用茎用,這樣程序就無(wú)法執(zhí)行,更不要說(shuō)在交互環(huán)境下睬罗,需要輸入 “input”的內(nèi)容轨功。于是幾乎想放棄了。慢慢琢磨其實(shí)發(fā)現(xiàn)容达,只要少量的安裝包就可以了古涧,包括Package Control、Anaconda花盐、SublimeREPL羡滑、Python 3菇爪、ChineseLocalizitions。
Package Control是用來(lái)管理包的柒昏,必須裝凳宙;Anaconda 用來(lái)控制 2.7 和3.6版本;SublimeREPL 用來(lái) “input”交互問(wèn)題的职祷;Python 3用來(lái)運(yùn)行Python 3氏涩;ChineseLocalizitions 解決菜單漢化的問(wèn)題。照理說(shuō)沒有必要漢化菜單有梆,但是不裝 Command+b 不起作用削葱,這是一個(gè)奇怪的問(wèn)題。
SublimeREPL 安裝后使用有些麻煩淳梦,需要設(shè)置一個(gè)快捷鍵析砸,可以搜一下網(wǎng)上介紹的文章。我把快捷鍵設(shè)置到 Command+q爆袍,這樣沒有交互的情況使用Command+b首繁,有交互使用Command+q。自己感覺很方便陨囊。
總結(jié)一下安裝SubLime text 3的流程:

  1. 安裝SubLime text 3 并安裝注冊(cè)碼
  2. 安裝Package Control
  3. 利用Package Control安裝其他的包
  4. 設(shè)置SublimeREPL的快捷鍵

折騰了這么久弦疮,歸結(jié)成上面四條,也算是“刪繁就簡(jiǎn)”了蜘醋。

9. VS Code 安裝

VS Code 是微軟的產(chǎn)品胁塞。這是被網(wǎng)友評(píng)價(jià)為“顏值”最高的編輯器。按照“刪繁就簡(jiǎn)”的原則压语,留下的包啸罢,包括:Python、Python for VScode胎食、MagicPython扰才。運(yùn)行的方法也簡(jiǎn)單,在程序框里厕怜,鼠標(biāo)右鍵后衩匣,選擇“Run Python File in Terminal”就可以了。VS Code 自帶了git粥航,這是下一步需要研究的琅捏。

9. PyCharm 的使用

PyCharm是最早安裝的,但是一直不受待見递雀。其實(shí)柄延,PyCharm使用是最方便的。而且可以在 Mac 自帶的 Python 2.7.4映之、Anaconda的2.7和3.6 之間切換拦焚。使用其實(shí)非常方便蜡坊,打開工作目錄杠输,選中需要運(yùn)行的程序赎败,右鍵選擇“run”。如果沒有交互而且程序沒有錯(cuò)誤蠢甲,程序就自動(dòng)執(zhí)行完畢僵刮,如果有交互,提示輸入鹦牛,然后執(zhí)行搞糕,非常流暢。如果Python版本不同曼追,在“Project interpreter”中選擇窍仰。

10. 結(jié)語(yǔ)

初始目標(biāo)是“選擇一本合適的教程和對(duì)應(yīng)的源代碼,在合適的編程環(huán)境下運(yùn)行”礼殊。經(jīng)過(guò)許多折騰驹吮,走了很多彎路,這個(gè)目標(biāo)總算達(dá)成晶伦。三個(gè)選項(xiàng)都能滿足要求碟狞,最讓人放心使用的還是pyCharm,至于 VS code 和 Sublime Text 3也是不錯(cuò)的選擇婚陪。打開教程族沃,在編程環(huán)境中打開相應(yīng)的源代碼,這樣的學(xué)習(xí)模式泌参,真的還是不錯(cuò)的脆淹。

初步學(xué)習(xí)后,試著編了一個(gè)小程序沽一,用來(lái)計(jì)算新股收益的未辆。輸入中簽的價(jià)格、中簽的股數(shù)和計(jì)算漲停板的天數(shù)锯玛,就可以計(jì)算逐天的漲幅咐柜、股價(jià)、累積漲幅攘残、累積收益拙友。

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

但是,這只是初步的歼郭。還有很多問(wèn)題需要解決:

  1. Python 的繼續(xù)深入學(xué)習(xí)
  2. 編程環(huán)境的設(shè)置和包的安裝
  3. 整合到環(huán)境中的git的使用
  4. 軟件庫(kù)的使用
  5. 爬蟲和量化的學(xué)習(xí)和使用

諸如此類遗契,還需要繼續(xù)“折騰”和學(xué)習(xí)。體會(huì)是

  1. “工欲善其事病曾、必先利其器”
  2. 有時(shí)候慢是為了后續(xù)的快
  3. 只有解決目標(biāo)所關(guān)聯(lián)的主要問(wèn)題牍蜂,才能達(dá)到初定的目標(biāo)
  4. 把非關(guān)鍵的問(wèn)題先放在一邊
  5. 刪繁就簡(jiǎn)

對(duì)那些毫無(wú)保留無(wú)私奉獻(xiàn)自己所學(xué)所得內(nèi)容的漾根、不曾見面的知識(shí)提供者,我總是懷著深深的敬意鲫竞。因?yàn)槟銈兊姆窒矸拢屛铱焖俚貙W(xué)到了不少?gòu)奈唇佑|到的新內(nèi)容,否則从绘,我會(huì)在探索的路上走得很慢寄疏,甚至?xí)咤e(cuò)方向。謝謝你們僵井,我的朋友陕截!
本文作者

2017.11.17 上海.風(fēng)雨夜
2017.11.28 編寫完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市批什,隨后出現(xiàn)的幾起案子农曲,更是在濱河造成了極大的恐慌,老刑警劉巖驻债,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乳规,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡却汉,警方通過(guò)查閱死者的電腦和手機(jī)驯妄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)合砂,“玉大人青扔,你說(shuō)我怎么就攤上這事◆嫖保” “怎么了微猖?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)缘屹。 經(jīng)常有香客問(wèn)我凛剥,道長(zhǎng),這世上最難降的妖魔是什么轻姿? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任犁珠,我火速辦了婚禮,結(jié)果婚禮上互亮,老公的妹妹穿的比我還像新娘犁享。我一直安慰自己,他們只是感情好豹休,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布炊昆。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪凤巨。 梳的紋絲不亂的頭發(fā)上视乐,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音敢茁,去河邊找鬼佑淀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛卷要,可吹牛的內(nèi)容都是我干的渣聚。 我是一名探鬼主播独榴,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼僧叉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了棺榔?” 一聲冷哼從身側(cè)響起瓶堕,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎症歇,沒想到半個(gè)月后郎笆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忘晤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年宛蚓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片设塔。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凄吏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出闰蛔,到底是詐尸還是另有隱情痕钢,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布序六,位于F島的核電站任连,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏例诀。R本人自食惡果不足惜随抠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望繁涂。 院中可真熱鬧拱她,春花似錦、人聲如沸爆土。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至氧猬,卻和暖如春背犯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盅抚。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工漠魏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妄均。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓柱锹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親丰包。 傳聞我的和親對(duì)象是個(gè)殘疾皇子禁熏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361