PyCharm 使用心得 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wsgzao
V2EX    Python

PyCharm 使用心得

  •  
  •   wsgzao
    wsgzao 2017-08-25 17:15:19 +08:00 11189 次点击
    这是一个创建于 2975 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    PyCharm 是大 JB 旗下的产品之一,对于广大 Python 开发者来说应该不会陌生,对于个人开发者来说用什么 IDE(VIM/Sublime Text/Visual Studio Code)可能并不重要,但是面对一个开发素质参差不齐的团队时,我相信老老实实统一使用 PyCharm 会是一个虽然大但是全的不错选择,因为一开始就开启 pep8 和 pylint 检测能显著提升代码质量,各种错误和警告提示会逼着你写出高质量的代码。当然统一编码和注释风格,小团队做一些适度的 code review 和单元测试会帮助团队一起更快的成长,良好的代码有时候靠的是自律、规范和 review,而不仅仅是技术。

    "我不是个伟大的程序员,我只是个有着一些优秀习惯的好程序员" | By Kent Beck

    PyCharm - Python IDE for Professional Developers by JetBrains.

    更新记录

    2017 年 08 月 25 日 - 初稿

    阅读原文 - https://wsgzao.github.io/post/pycharm/

    扩展阅读

    PyCharm - https://www.jetbrains.com/pycharm/

    购买和使用

    JetBrains 的产品大多数是付费形式,但是对于教育行业却实行免费授权计划,几乎涵盖所有产品,十分良心。

    学生授权申请方式

    https://sales.jetbrains.com/hc/zh-cn/articles/207154369-%E5%AD%A6%E7%94%9F%E6%8E%88%E6%9D%83%E7%94%B3%E8%AF%B7%E6%96%B9%E5%BC%8F

    如果已经有一定经济能力请支持正版

    基本配置

    以下设置选项随着版本调整可能发生位置变化,但可以在 Settings(Ctrl+Alt+S)左上角的搜索栏里快速进行查询

    字体调整

    默认的字体个人觉得偏小,File-->Settings-->Editor-->Font,新版本不必像老版本一样调整前必须要保持一个新的 Scheme,直接修改你喜欢的字体和大小应用就可以看到效果了

    显示行号

    File-->Settings-->Editor-->General-->Appearance里勾选 Show line numbers

    皮肤主题与编辑器主题

    皮肤主题和编辑器主题是分开设置的

    皮肤主题在File-->Settings-->Appearance & Behavior-->Appearance的 Theme 选项下选择

    编辑器主题在File-->Settings-->Editor-->Colors Scheme的 Scheme 选项下选择

    自动生成文件头

    默认情况下,新建完一个文件后,PyCharm 会生成一个__author__ = '$USER'的文件头,但通常每个 Python 文件都会添加# -*- coding: utf-8 -*-来控制编码。可以在File-->Settings-->File and Code Templates中的 Templates 选中 Python Script 在右侧把你要自动添加的内容加进去

    # -*- coding: utf-8 -*- # __author__ = 'wangao' 

    常用快捷键

    温馨提示:PyCharm 会实时自动保存代码并写入本地文件

    Ctrl + / 行注释,可以批量选择和取消

    快速按 2 次 Shift 全局文件名称查找,可以快速定位所要编辑的文件

    Ctrl + F 当前文件查找

    Ctrl + R 当前文件替换

    Ctrl + Shift + F 全局查找,可能会和输入法的简繁快捷键冲突,记得关闭

    Ctrl + Shift + R 全局替换

    Ctrl + Z 撤销

    Ctrl + Shift + Z 回撤

    使用技巧

    未完待续

    参考文献

    @陈俊岭 把 Pycharm 官方帮助文档翻译了一遍,如果英文不好可以适度参考

    我的 Pycharm,我做主 - http://blog.csdn.net/u013088062/article/details/50388329

    23 条回复    2017-08-27 18:28:20 +08:00
    whatafuck
        1
    whatafuck  
       2017-08-25 18:00:06 +08:00
    ctrl+alt+L :代码自动整洁
    miaomiao0323
        3
    miaomiao0323  
       2017-08-25 18:10:08 +08:00
    有时候还是觉得自己一开始写的格式顺眼
    babywhisper
        4
    babywhisper  
       2017-08-25 18:16:55 +08:00
    哈哈哈. 好巧, 我也总结过一些快捷键:
    https://changchen.me/blog/20170607/pycharm-shortcut/

    这个翻译也是 nb 了
    zeroxia
        5
    zeroxia  
       2017-08-25 21:23:00 +08:00
    我用 python.exe -mpip install pyodbc 安装了一个新的包,然后在 PyCharm 里就不会提示包里的符号,这个怎么让它扫描一遍刷新一下?
    LosLord
        6
    LosLord  
       2017-08-25 21:28:41 +08:00 via Android
    表示 python 的缩进好难弄,其他语言写的多乱,ctrl+alt+L 都会整理好,python 就不行了
    mintist
        7
    mintist  
       2017-08-25 23:44:38 +08:00   1
    大 PyCharm 的本地历史保留,就了我一命,必须支持

    瞎 B 乱用 `git reset --hard HEAD`

    TJT
        8
    TJT  
       2017-08-26 00:52:05 +08:00
    已订阅 JB 全家桶,尽情享用全部 JB。

    快捷键都是那几个常用的快捷键,IdeaVim 才是神器。
    dotaer
        9
    dotaer  
       2017-08-26 07:28:21 +08:00 via Android
    Pycharm 支持类型推断哦,给点类型提示,写代码爽歪歪
    shiroming
        10
    shiroming  
       2017-08-26 09:25:49 +08:00 via Android
    @LosLord pycharm ctrl Alt L 也是一样格式化的效果,为啥说不行
    LosLord
        11
    LosLord  
       2017-08-26 09:30:22 +08:00 via Android
    @shiroming 不是说 pycharm 的格式化不行,是我不习惯 python 的缩进,比如要在某段代码添加个 if 语句,我需要把这段代码全部缩进,然后加 if。其他对缩进不敏感的语言直接上面加个 if (){,尾部加个},直接 ctrl+alt+L
    xvx
        12
    xvx  
       2017-08-26 09:44:31 +08:00 via Android
    mark 一下常用快捷键。
    shiroming
        13
    shiroming  
       2017-08-26 09:49:36 +08:00 via Android
    @LosLord 不习惯没办法。
    hantsy
        14
    hantsy  
       2017-08-26 10:21:39 +08:00
    @whatafuck Format 真的要命,各 IDE 都不一样,NetBeans, Eclispe, IDEA, 经常用混掉。
    fifman
        15
    fifman  
       2017-08-26 12:43:52 +08:00
    本地历史这个真是太赞了。

    而且 jB 全家桶统一的插件系统、统一的用户体验这点也是赞到不行

    论 IDE,JB 现在真的有一桶浆糊的气势了
    sangmong
        16
    sangmong  
       2017-08-26 13:17:54 +08:00
    mark
    zhangysh1995
        17
    zhangysh1995  
       2017-08-26 13:50:27 +08:00
    @zeroxia 左上角那个圆的箭头 Synchronize 同步应该就可以,实在不行重启清空缓存,再没有的话就是包的问题了
    neoblackcap
        18
    neoblackcap  
       2017-08-26 14:45:03 +08:00   1
    custom vm option:
    -Xms1024m
    -Xmx2048m
    -Xbootclasspath/a:../lib/boot.jar
    -XX:ReservedCodeCacheSize=256m
    -XX:+UseCompressedOops
    -XX:+AggressiveOpts
    -XX:+UseG1GC
    -XX:+AlwaysPreTouch
    -Dide.no.platform.update=true
    懂的话就拿去用,充分利用系统资源,减少卡顿
    jiangbingo
        19
    jiangbingo  
       2017-08-26 21:05:42 +08:00
    入门 Python 就是从 pycharm 开始的。
    wsgzao
        20
    wsgzao  
    OP
       2017-08-27 00:36:45 +08:00
    @neoblackcap

    这个优化配置之前官网也没有见到,因为内外网隔离,我们内网开发环境是基于 VMware Horizon View 的零客户机,缺少 GPU 的支持确实会卡顿,像 MS Office 必须关闭图形化硬件加速,而且因为 SMB 安全漏洞统一转为 SFTP Net Drive 网络 SSH 协议映射( PyCharm 文件索引和回写磁盘会有延迟),通过 virtualenvwrapper 和 Gitlab 来实现单元测试,code review 等 CI 协作。

    请问您的配置具体如何实现,是否可以解决部分卡顿问题呢?
    fearme
        21
    fearme  
       2017-08-27 10:07:29 +08:00 via iPhone
    @dotaer 举个类型推断的例子呀谢谢

    顺便再安利下我用的语法配色
    t/385417
    neoblackcap
        22
    neoblackcap  
       2017-08-27 13:45:47 +08:00
    @wsgzao 你这这些问题,我只能说能解决一部分,但是不能根本解决,毕竟你的 IO 差,怎么调优也没办法啊。我这配置是 JVM 的参数调优,主要是增大 Heap 以及使用 G1 的垃圾回收算法,以起到缩小 STOP THE WORLD 的时间。当然如果你的内存很大,我觉得你可以调高 heap,然后关闭自动保存,有一定的成效。Pycharm 对 GPU 这方面要求应该不高,毕竟 openjdk 的光栅化都不如 oracle jdk。现在都改用 openjdk 了,使用起来也没什么影响。你的 IO 差大概只能寄托于你们系统管理员了吧。
    wisej
        23
    wisej  
       2017-08-27 18:28:20 +08:00
    最近刚发现的一个功能:Bookmark
    在光标所在行建立书签:ctrl + F11, 删除 :F11
    查看所有书签位置:shift + F11
    参考: https://www.jetbrains.com/help/pycharm/managing-bookmarks.html
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2649 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:10 PVG 13:10 LAX 22:10 JFK 01:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86