配置便捷的開發(fā)環(huán)境(PyCharm & Jupyter)

由于在PyCharm中進(jìn)行統(tǒng)計(jì)整理數(shù)據(jù)谦炬、畫圖等操作有諸多的不便键思。在本地的jupyter notebook進(jìn)行處理又顯得步驟繁瑣(傳輸文件)甫贯,故萌生在服務(wù)器搭建jupyter notebook的想法。兩種工具優(yōu)勢互補(bǔ)赔桌,從而最大程度上集中注意力在項(xiàng)目本身纬乍,提升開發(fā)效率裸卫。

原文發(fā)布于個(gè)人博客(好望角)墓贿,并在博客持續(xù)修改更新,此處可能更新不及時(shí)队伟。


“工欲善其事幽勒,必先利其器”啥容,接下來看看如何用PyCharm和Jupyter配置最便捷的python開發(fā)環(huán)境咪惠。

PyCharm

image

一打開軟件界面遥昧,滿滿的科幻感迎面撲來。用色塊構(gòu)建的魔幻畫面好似一張變形金剛的面龐永脓。最新的版本加入了默認(rèn)的Vim編輯模式憨奸,讓強(qiáng)大的PyCharm更如猛虎添翼一般排宰。

基礎(chǔ)配置

打開設(shè)置界面的快捷鍵是Ctrl+Alt+S那婉。

  • 背景色:軟件默認(rèn)的背景是白色的详炬,這顯然不符合我們廣大程序員的審美。File -> Appearance &Behaior -> Appearance 中可以修改在跳, Darcula 是常用的黑色主題猫妙。

  • 字體:不出意外的話割坠,你會(huì)認(rèn)為它的字體有些小。File -> Editor -> Font 中可以放大对妄,console中的代碼和編輯區(qū)的代碼設(shè)置方式類似剪菱。

  • 主題:如果對(duì)默認(rèn)主題的配色不滿意拴签,可以在 File -> Editor -> Color Scheme 中修改篓吁。

  • 代碼風(fēng)格:在 File -> Editor -> Code Style 中杖剪,可以對(duì)不同類型的代碼文件可以分別進(jìn)行個(gè)性化設(shè)置。

代碼模板

懶人改變世界盛嘿,而程序員往往都很懶次兆。。漓库。能讓計(jì)算機(jī)手工完成的內(nèi)容絕對(duì)不會(huì)自己動(dòng)手重復(fù)添加渺蒿。

不難發(fā)現(xiàn)茂装,在程序開發(fā)過程中少态,有一些代碼基本沒有變化彼妻,而且我們會(huì)經(jīng)常性的重復(fù)使用训挡。那么澜薄,這種傻傻很麻煩的事情最適合計(jì)算機(jī)來自動(dòng)完成了颊艳。顯然忘分,開發(fā)PyCharm的程序員小哥想到了這一用戶痛點(diǎn)妒峦。

File -> Editor -> File and Code Templates 中肯骇,我們可以將常用的文件類型中的一些常用代碼寫入該類型文件的默認(rèn)模板中笛丙,例如。

# -*- coding: utf-8 -*-

除此之外骨稿,還可以在文件開頭添加一些注釋信息坦冠。如下所示:

image

版本控制

一個(gè)好的開發(fā)環(huán)境不可能沒有版本控制系統(tǒng)。

PyCharm內(nèi)置了CVS泰讽、Git、Mercurial佛玄、Subversion等多種版本控制工具梦抢,我們只需要簡單的配置即可使用奥吩。

從github上Clone 代碼霞赫,上傳保存,進(jìn)行版本控制叠洗,多人協(xié)同開發(fā)灭抑,統(tǒng)統(tǒng)可以在軟件內(nèi)輕松地完成。

遠(yuǎn)程調(diào)試

這是一個(gè)超級(jí)良心的免費(fèi)功能荤牍,我相信即使這個(gè)功能收費(fèi)参淫,也會(huì)有很多程序員小哥繼續(xù)使用PyCharm。在其他的地方寫代碼鞋既,我們都需要在本地調(diào)試好,再上傳服務(wù)器陡舅。出問題后,再次修改伴挚,再次上傳靶衍,非常浪費(fèi)時(shí)間。那么如何簡化本地代碼和服務(wù)器代碼之間的溝通工作呢茎芋?PyCharm也幫我們內(nèi)置好了颅眶。

Tools -> Deployment -> Configurtion中可以配置好多臺(tái)服務(wù)器,如果服務(wù)器中的python環(huán)境配置良好田弥,我們就不需要再單獨(dú)在本地配置一遍涛酗。配置如下所示:

image

在對(duì)應(yīng)的位置填寫好服務(wù)器的位置,自己的用戶名和密碼,以及想要打開的根目錄(節(jié)省重復(fù)打開文件夾的時(shí)間)商叹。

第二個(gè)選項(xiàng)卡Mappings中配置本地項(xiàng)目和服務(wù)器項(xiàng)目對(duì)應(yīng)的映射關(guān)系燕刻。這里有個(gè)需要注意的地方剖笙,建議只將代碼和訓(xùn)練語料分開存儲(chǔ)籍滴,不要使訓(xùn)練語料成為映射項(xiàng)目的一部分,加快加載速度坦报。在第一次配置好開發(fā)環(huán)境的時(shí)候字管,需要將服務(wù)器的一些文件下載到本地抽活,需要稍等幾分鐘,以后就很幸福了!

Tools -> Deployment -> Configurtion中選擇本地文件的上傳方式辛掠,我這里將Ctrl+S設(shè)置為本地保存并上傳服務(wù)器猩谊。

Jupyter-notebook

對(duì)于jupyter notebook來說暗甥,它的缺點(diǎn)還是十分明顯的。沒有一個(gè)很好的框架,不能清晰的構(gòu)建大型項(xiàng)目。也不曾擁有IDECtrl+點(diǎn)擊函數(shù)名就可以跳轉(zhuǎn)的方便功能,導(dǎo)致閱讀代碼吃力耕蝉。

但同樣的场躯,它的對(duì)于PyCharm的優(yōu)點(diǎn)也是無可替代的粘茄。

  • PyCharm簡直是一個(gè)科學(xué)計(jì)算的神奇,在做數(shù)據(jù)挖掘的時(shí)候,代碼和報(bào)告(支持latex公式)高度融合,無需二次撰寫。

  • 在處理數(shù)據(jù)的時(shí)候锯岖,所有中間結(jié)果不會(huì)被擦除辙喂,都顯示在對(duì)應(yīng)的cell下面灸蟆。方便調(diào)試斋枢,減輕記憶的工作量。

  • 方便的圖表展示赃阀,不像PyCharm那樣驮俗,會(huì)新彈出一個(gè)窗口展示圖片索烹,圖文融合在一起求类。

  • 等等……

雖然優(yōu)點(diǎn)眾多俗他,但如果只能在本地運(yùn)行也只能算是雞肋。經(jīng)常將工程中的部分文件從服務(wù)器傳輸?shù)奖镜卦俜治隹@是一件很累人的事情。

服務(wù)器jupyter搭建

  • 首先保證我們的linux服務(wù)器的python(Anaconda)環(huán)境已經(jīng)配置好了上荡。

  • 打開Ipython,輸入如下兩行代碼后,會(huì)生成一個(gè)字符串官扣,例如”sha1:9305015210b4:32cad364c85e7f7a13b9efa137cfadf633cc62d“。請(qǐng)復(fù)制出來暫時(shí)保存谤祖,稍后會(huì)使用。

from notebook.auth import passwd
passwd()
  • 如果~/.jupyter路徑下沒有 jupyter_notebook_config.py 磺樱,則輸入如下命令新建它芜辕。
jupyter notebook --generate-config
  • 新產(chǎn)生的文件中的所有內(nèi)容都以注釋的形式存在训裆,直接在文件末尾加入如下幾行代碼,并根據(jù)自己的環(huán)境調(diào)整路徑记劝。
c.NotebookApp.ip = '*'  # 允許訪問此服務(wù)器的 IP,星號(hào)表示任意 IP
c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密碼 hash 字串
c.NotebookApp.open_browser = False # 運(yùn)行時(shí)不打開本機(jī)瀏覽器
c.NotebookApp.port = 12035 # 使用的端口
c.NotebookApp.enable_mathjax = True # 啟用 MathJax
  • 由于大家公用的服務(wù)器录豺,我并沒有管理員權(quán)限苍匆,不能將jupyter notebook添加為系統(tǒng)級(jí)別的服務(wù)瑰钮。我們只需執(zhí)行如下命令就可以方便的在本地調(diào)用jupyter notebook了(服務(wù)器不會(huì)經(jīng)常重啟)冒滩。
nohup jupyter notebook > notebook.file 2>&1 &

調(diào)用方式:在本地瀏覽器中輸入服務(wù)器地址:設(shè)置的端口號(hào)即可。例如:165.32.65.109:7060

Jupyter 優(yōu)化

  • 更換主題

    • 對(duì)于程序員來說浪谴,Jupyter默認(rèn)的白色背景不是很友好开睡,為了和黑色的Pycharm更加搭配因苹,可以先執(zhí)行如下命令安裝其他主題 pip install jupyterthemes --user
    • 安裝好之后的操作很簡單,如下例所示篇恒。
    # list available themes
    # onedork | grade3 | oceans16 | chesterish | monokai | solarizedl | solarizedd
    # 列出所有可用的主題
    jt -l
    
    # select theme...
    # jt -t 主題名
    jt -t chesterish
    
    # restore default theme
    # NOTE: Need to delete browser cache after running jt -r
    # If this doesn't work, try starting a new notebook session.
    # 恢復(fù)默認(rèn)主題
    jt -r
    
  • 自動(dòng)代碼補(bǔ)全

    • 雖然Jupyter也可以代碼補(bǔ)全扶檐,但是總是需要多此一舉的按一個(gè)Tab鍵,與PyCharm風(fēng)格不搭配胁艰。

    • 方法一:執(zhí)行ipython profile create 命令款筑, vim ~/.ipython/profile_default/ipython_config.py,修改成如下樣子腾么。重啟jupyter后生效

      ## Activate greedy completion PENDING DEPRECTION. this is now mostly taken care
      #  of with Jedi.
      #
      #  This will enable completion on elements of lists, results of function calls,
      #  etc., but can be unsafe because the code is actually evaluated on TAB.
      c.Completer.greedy = True
      
      ## Experimental: restrict time (in milliseconds) during which Jedi can compute
      #  types. Set to 0 to stop computing types. Non-zero value lower than 100ms may
      #  hurt performance by preventing jedi to build its cache.
      c.Completer.jedi_compute_type_timeout = 400
      
      ## Experimental: Use Jedi to generate autocompletions. Off by default.
      c.Completer.use_jedi = True
      
    • 方法二:安裝如下插件奈梳,如果報(bào)錯(cuò),還需要更新配置一些包環(huán)境:

pip install jupyter_contrib_nbextensions --user
pip install jupyter_nbextensions_configurator --user
pip install --upgrade ipykernel --user
chmod 777 ~/.local/share/jupyter/
pip install --upgrade --user nbconvert
pip install --upgrade jupyter_core jupyter_client --user

總結(jié)

至此解虱,PyCharm 和 Jupyter 都已經(jīng)配置完畢攘须。今后PyCharm仍然是主力的代碼編輯工具。但在工程構(gòu)建過程中殴泰,免不了許多中間結(jié)果需要分析和查看阻课,這個(gè)時(shí)候Jupyter就可以派上用場。進(jìn)行輕量的模塊化分析任務(wù)艰匙。另外限煞,Jupyter也可以打開文本文件進(jìn)行編輯(可以自由選擇Vim/Sublime等編輯模式),這樣就不用使用WinSCP來單獨(dú)查看文件员凝;Jupyter也可以打開Terminal署驻,這樣我們就不用再單獨(dú)使用Xshell,Xming等軟件健霹。釋放本地內(nèi)存旺上,

我們只需要開啟瀏覽器和PyCharm就可以方便交互服務(wù)器,進(jìn)行代碼的版本控制糖埋,以及進(jìn)行數(shù)據(jù)分析宣吱。接下來可以更加愉快的干活了!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瞳别,一起剝皮案震驚了整個(gè)濱河市征候,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祟敛,老刑警劉巖疤坝,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異馆铁,居然都是意外死亡跑揉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來历谍,“玉大人现拒,你說我怎么就攤上這事⊥蓿” “怎么了印蔬?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長甜无。 經(jīng)常有香客問我扛点,道長,這世上最難降的妖魔是什么岂丘? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任陵究,我火速辦了婚禮,結(jié)果婚禮上奥帘,老公的妹妹穿的比我還像新娘铜邮。我一直安慰自己,他們只是感情好寨蹋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布松蒜。 她就那樣靜靜地躺著,像睡著了一般已旧。 火紅的嫁衣襯著肌膚如雪秸苗。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天运褪,我揣著相機(jī)與錄音惊楼,去河邊找鬼。 笑死秸讹,一個(gè)胖子當(dāng)著我的面吹牛檀咙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播璃诀,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼弧可,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了劣欢?” 一聲冷哼從身側(cè)響起棕诵,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氧秘,沒想到半個(gè)月后年鸳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丸相,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了彼棍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灭忠。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膳算,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弛作,到底是詐尸還是另有隱情涕蜂,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布映琳,位于F島的核電站机隙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏萨西。R本人自食惡果不足惜有鹿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谎脯。 院中可真熱鬧葱跋,春花似錦、人聲如沸源梭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽废麻。三九已至荠卷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間烛愧,已是汗流浹背油宜。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屑彻,地道東北人验庙。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像社牲,于是被迫代替她去往敵國和親粪薛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一、什么是Jupyter Notebook熟空? 1. 簡介 Jupyter Notebook是基于網(wǎng)頁的用于交互計(jì)算...
    Raxxie閱讀 1,439,192評(píng)論 36 703
  • 原文鏈接 《Python數(shù)據(jù)分析》(Python for Data Analysis, 2nd Edition)第...
    李紹俊閱讀 8,221評(píng)論 0 5
  • 給初學(xué)者的 Jupyter Notebook 教程 Jupyter Notebook 是一個(gè)非常強(qiáng)大的工具息罗,常用于...
    Jancd閱讀 25,950評(píng)論 2 30
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理掂咒,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,600評(píng)論 18 139
  • 年少輕狂不知路在何方绍刮, 風(fēng)雨飄搖只當(dāng)它是春至末寒霜温圆。 年少輕狂不知時(shí)光幾許, 紅日升落只當(dāng)它是朝夕霞光孩革。 年少輕狂...
    序小木閱讀 687評(píng)論 17 11