2、PyCharm:PyCharm的安装、设置字体、设置快捷键、PyCharm常用设置、调试
工欲善其事,必先利其器。做Python开发,尤其是要深入到源码层面去优化打印速度和精度,一个好用的IDE能帮你省下大把时间。我个人最常用的就是PyCharm,它功能强大,但很多人只用了它不到20%的能力。今天我就带你把这20%的精华先吃透。
2.1 安装PyCharm
安装这事儿其实没啥好说的,但我还是想提一嘴。去JetBrains官网下载,选Community版还是Professional版?
我的建议是:如果你只是写写脚本、做做数据分析,Community版完全够用。但如果你要搞Web开发、数据库操作,或者像我一样经常需要远程调试,那Professional版值得投资。我当年刚入行时抠门用了半年Community版,后来项目需要远程连接服务器调试,才乖乖掏了钱——嗯,真香。
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:调试时计算表达式。这个后面调试部分会细说。
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风格。这样你的代码在任何平台上都能保持一致的格式。
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。这样程序只在满足条件时暂停,其他时候正常跑。这个功能在优化打印精度时特别有用——你可以精确控制观察点。
len(buffer)、sys.getsizeof(data),实时查看变量值和内存占用。我在分析打印缓冲区大小时,全靠这个功能。
2.5.3 变量监视
在调试窗口的 Variables 面板里,你可以看到当前作用域下所有变量的值。右键点击变量,选择 Add to Watches,就能把它加到监视列表里,随时关注它的变化。
我一般会把 buffer_size、flush_interval 这类跟打印性能相关的变量加到监视列表。这样在单步调试时,一眼就能看出它们的变化趋势。
2.6 本章知识体系
下面这张图帮你梳理了PyCharm的核心配置和调试流程,方便你快速回顾。
这张图把安装、字体、快捷键、常用设置和调试流程串在了一起。你跟着这个流程走一遍,PyCharm的基本功就算打牢了。接下来,我们就可以真正开始动手优化打印速度了。