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 · 10650 次点击
    这是一个创建于 2648 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

    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
    有时候还是觉得自己一开始写的格式顺眼
    daya0576
        4
    daya0576  
       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 举个类型推断的例子呀谢谢

    顺便再安利下我用的语法配色
    https://www.v2ex.com/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   ·   实用小工具   ·   2757 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:15 · PVG 18:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.