Pycharm Pro


Pycharm,只为提高python开发者的生产力!

版本管理

Screen Shot 2017-11-08 at 18.17.59
版本管理,主要是依靠这两个按钮,左边是pull,右边是commit。一般我们开发,打开项目,先pull下代码仓库的变更,开始开发,然后commit,再pull,合并冲突,再push。
Screen Shot 2017-11-08 at 18.21.55
pycharm非常人性化地为我们标出了,黑色则是没有变更,蓝色是有变更,绿色是新add的文件。
Screen Shot 2017-11-08 at 18.23.21
commit时,可以很方便地看出变更对比,对于需要回滚的零时操作文件可以用紫色的revert按钮回退变更,总之填写commit message之后就可以commit了。
然后,为防止在此期间,代码仓库又有人push了新变更,在push之前,我们需要再次pull,如果没有变更,push即可。
Screen Shot 2017-11-08 at 18.26.24
如果有冲突呢,pycharm有非常human的解决冲突界面,

总之,选择修改的、丢弃的、保留的,就可以push了,当然,这次push会有两条message,第二条是解决冲突的。

远程调试

利用pycharm我们可以在服务器直接run、debug,非常的便捷。
首先要设置deployment,
Screen Shot 2017-11-08 at 18.31.20
选择SFTP,也就是ssh,这里用密码或者私钥都是ok的。设置好映射目录,
Screen Shot 2017-11-08 at 18.31.56
接下来添加远程解释器,
Screen Shot 2017-11-08 at 18.33.05
,并勾选auto upload,
Screen Shot 2017-11-08 at 18.33.46
那么,每次本地的更改都会同步到服务器,直接run或者debug都是获取服务器的结果,非常方便。

DEBUG

DEBUG可谓是开发中最最重要的技能了,也许我们在初级的开发的时候,还可以依靠各种print变量来查看,那么工程一旦变复杂,debug就必不可少了,;举个栗子,我们用TensorFlow写深度学习工程的时候,如果出现矩阵维度不匹配的情况,这个时候用debug去观察各个维度就相当高效了。
以下图为例,我们做debug,当然先要在我们希望观察的代码处打断点(Break Point),就是左边的红色小点,第一个断点debug停下来的地方。接下来就是debug按钮了,也就是红框内的这些箭头,依次是

  • Step Over 直接从当前断点步进到下一个断点,也就是我们不希望看到中间的任何调用,直接跳过
  • Step Into,从当前断点,每一次调用都进入,如果调用比较多,可能很繁因为会一步步深入
  • Step Into Mycode,简单明了,一行一行的步进,不跳转到调用
  • Force Step Into,强制步进进入
  • Step Out 跳出当前调用,和Step Into结合,一个进入、一个跳出
  • Run to Cursor 不需打断点,直接步进到光标所在处,这个也很方便,只需把光标放在某处点击即可
    Screen Shot 2017-11-09 at 15.49.12
    此处类似堆栈,后面调用的进程在上面。
    Screen Shot 2017-11-09 at 16.19.42
    当然,最主要的,上面这些步骤按钮的最终目的就是观察Variable的变化,通过步进观察各个变量的信息,以找出bug等等。
    Screen Shot 2017-11-09 at 16.21.15

Python Console

相比iPython与Notebook,Pycharm自带的Python Console有其独到的优势,比如Special Variables与Code History ,如图,分别用一个两个三个下划线代表上一次上两次上三次的变量,在这里可以直接像debug一样查看各个变量的值;Code History则是使用户方便地使用之前的代码。
Screen Shot 2017-11-09 at 15.23.52

run file in console

右键的run file in console非常有用,之后我们可以在变量中直接观察,甚至在左侧直接调用计算。

快捷键

调整代码行次序

Command + Shift + ⬆️/⬇️
有时我们需要调整两行代码的上下次序,那么用剪切、粘贴的方法不如这个方法简洁自然。

查看源码及跳转

摁住Command键去点击即可跳转到源码处,而查看源码时我们可以通过Command + [/]来方便的前进或后退。

批量展开收缩代码

Command + Shift +/-

当项目写到一定规模的时候,难免方法/函数会很多,这个时候我们可以使用此命令来收缩代码,这个主要是为了方便查看。

快速插入常用代码

Command + J 是弹出插入常用代码块的快捷键,比如Dict/List/Set 的comprehension都有,之前我只会‘main’然后跳出if __name__ == '__main__':😜

一键 PEP8

其实在了解这个tips之前我都是点击函数名,等待一个黄色的小灯泡再去点击灯泡。。。其实只需要Command+Option+L即可!

cheat sheet

顺便更新两张cheat sheet