2、PyCharm:PyCharm的安装、设置字体、设置快捷键、PyCharm常用设置、调试

工欲善其事,必先利其器。做Python开发,尤其是要深入到源码层面去优化打印速度和精度,一个好用的IDE能帮你省下大把时间。我个人最常用的就是PyCharm,它功能强大,但很多人只用了它不到20%的能力。今天我就带你把这20%的精华先吃透。

2.1 安装PyCharm

安装这事儿其实没啥好说的,但我还是想提一嘴。去JetBrains官网下载,选Community版还是Professional版?

我的建议是:如果你只是写写脚本、做做数据分析,Community版完全够用。但如果你要搞Web开发、数据库操作,或者像我一样经常需要远程调试,那Professional版值得投资。我当年刚入行时抠门用了半年Community版,后来项目需要远程连接服务器调试,才乖乖掏了钱——嗯,真香。

小提示: 安装时记得勾选“Add launchers to PATH”和“Create associations for .py”。这样你以后在命令行里直接敲 charm . 就能打开当前目录的项目,省事不少。

2.2 设置字体

字体这东西,看着是小事,但天天对着代码,选错了真的会瞎。我个人习惯用 JetBrains Mono,这是JetBrains自家出的等宽字体,专门为代码阅读优化过。0和O、1和l、i和j这些容易混淆的字符,它都做了特殊处理。

设置路径很简单:File → Settings → Editor → Font。我一般把字号设在14-16之间,看个人屏幕分辨率和视力情况。如果你跟我一样经常熬夜写代码,建议把行间距(Line spacing)调到1.2或1.3,眼睛会舒服很多。

注意: 别用宋体、微软雅黑这些非等宽字体写代码。等宽字体能让代码对齐更精准,尤其是在调试时看变量值、看缩进层级,非等宽字体就是灾难。

2.3 设置快捷键

PyCharm默认的快捷键方案是模仿IntelliJ IDEA的,如果你之前用惯了其他IDE,可能会觉得别扭。没关系,可以改成Eclipse或VS Code的方案。

路径:File → Settings → Keymap。下拉框里直接选你习惯的方案就行。

但我建议你花点时间适应PyCharm的默认方案,因为它确实高效。我挑几个最常用的说说:

  • Ctrl + Shift + F10:运行当前文件。调试代码时我按这个键的频率最高。
  • Ctrl + /:注释/取消注释。这个不用多说了吧。
  • Ctrl + D:复制当前行。比先选中再复制快多了。
  • Ctrl + Shift + E:最近编辑过的文件。找代码时特别好用。
  • Alt + F8:调试时计算表达式。这个后面调试部分会细说。
我的经验: 我曾经为了调试一个打印速度的bug,在几百行代码里反复跳转。后来发现用 Ctrl + Shift + E 配合 Ctrl + B(跳转到定义),效率直接翻倍。快捷键这东西,用熟了就是肌肉记忆。

2.4 PyCharm常用设置

有几个设置我建议你拿到新环境后第一时间改掉,能省很多麻烦。

设置项 路径 推荐值 为什么
自动导入 Editor → General → Auto Import 勾选“Add unambiguous imports on the fly” 写代码时自动补全import语句,省得手动敲
代码折叠 Editor → General → Code Folding 取消勾选“Imports” 折叠import语句容易让人忽略依赖关系
文件编码 Editor → File Encodings 全部设为UTF-8 避免中文乱码,尤其是处理日志文件时
自动保存 Appearance & Behavior → System Settings 勾选“Save files on frame deactivation” 切换窗口时自动保存,防止丢代码

还有一个容易被忽略的:代码样式(Code Style)。路径在 Editor → Code Style → Python。我建议把缩进设为4个空格,换行符用Unix风格。这样你的代码在任何平台上都能保持一致的格式。

避坑指南: 我曾经在Windows上写代码,换行符默认是CRLF。结果代码提交到Linux服务器上跑,打印出来的日志格式全乱了。后来统一改成LF,再也没出过问题。

2.5 调试

调试是优化打印速度和精度的核心环节。你想想看,没有调试,你只能靠猜。而PyCharm的调试器,说白了就是给你一双透视眼,让你能看清代码运行时每一刻的状态。

2.5.1 断点调试

最基本的操作:在行号旁边点一下,出现红色圆点就是断点。然后右键点击文件,选择 Debug 运行。

程序会在断点处停下来。这时候你可以:

  • Step Over (F8):单步执行,不进入函数内部。
  • Step Into (F7):进入函数内部,看它怎么执行的。
  • Step Out (Shift + F8):跳出当前函数,回到调用处。
  • Resume Program (F9):继续执行到下一个断点。

我调试打印速度优化时,最常用的就是 Step Into。因为我要看 print() 函数内部到底是怎么把数据写到缓冲区、再刷到终端的。不进去看,你永远不知道瓶颈在哪。

2.5.2 条件断点

有时候你不想每次循环都停下来,只想在特定条件下暂停。比如你有一个循环打印10000行日志,你只想看第5000行时的状态。

右键点击断点,在弹出的对话框里输入条件:i == 5000。这样程序只在满足条件时暂停,其他时候正常跑。这个功能在优化打印精度时特别有用——你可以精确控制观察点。

核心技巧: 调试时别忘了用 Alt + F8 调出表达式计算窗口。你可以在这里输入任意Python表达式,比如 len(buffer)、sys.getsizeof(data),实时查看变量值和内存占用。我在分析打印缓冲区大小时,全靠这个功能。

2.5.3 变量监视

在调试窗口的 Variables 面板里,你可以看到当前作用域下所有变量的值。右键点击变量,选择 Add to Watches,就能把它加到监视列表里,随时关注它的变化。

我一般会把 buffer_size、flush_interval 这类跟打印性能相关的变量加到监视列表。这样在单步调试时,一眼就能看出它们的变化趋势。

注意: 调试时不要修改正在运行的代码。PyCharm虽然支持热更新(Hot Swap),但仅限于方法体内部的修改。如果你改了类结构或函数签名,最好重新启动调试会话,否则会出现诡异的行为。

2.6 本章知识体系

下面这张图帮你梳理了PyCharm的核心配置和调试流程,方便你快速回顾。

PyCharm 核心配置与调试流程 安装 字体设置 快捷键设置 常用设置 调试流程 设置断点 Debug运行 单步执行 变量监视 条件断点 表达式计算 (Alt+F8) 热更新 目标:高效调试,精准定位打印性能瓶颈 从源码层面优化打印速度与精度

这张图把安装、字体、快捷键、常用设置和调试流程串在了一起。你跟着这个流程走一遍,PyCharm的基本功就算打牢了。接下来,我们就可以真正开始动手优化打印速度了。