Pycharm
PyCharm 是 JetBrains 出品的 Python 主流 IDE,提供智能补全、重构、调试、测试、虚拟环境管理等一站式开发能力。分为 Community(免费) 和 Professional(付费) 两个版本,Professional 额外支持 Django、FastAPI、数据库、远程开发等。
同类工具:VS Code(轻量通用)、IDEA(Java/Kotlin 为主,同 JetBrains 系)。
项目与解释器配置
File → Settings(Ctrl+Alt+S)
└── Project: <项目名>
└── Python Interpreter
├── 添加本地虚拟环境(venv / conda)
├── 添加系统 Python
└── 添加远程解释器(SSH / Docker)
新建项目时可直接选择解释器类型:
File → New Project
├── Pure Python
├── Django / FastAPI / Flask(Professional)
└── Interpreter:New venv / Existing / Conda
虚拟环境
PyCharm 内置对主流虚拟环境工具的支持:
在 Terminal 中操作虚拟环境时,PyCharm 会自动激活当前项目的解释器环境。
核心快捷键
导航
| 快捷键 | 功能 |
|---|---|
Double Shift | 全局搜索(文件、类、符号、操作) |
Ctrl+N | 搜索类 |
Ctrl+Shift+N | 搜索文件 |
Ctrl+Alt+Shift+N | 搜索符号(函数、变量) |
Ctrl+Shift+A | 搜索 IDE 功能/Action |
Ctrl+E | 最近打开的文件 |
Alt+F7 | 查找用法(Find Usages) |
Ctrl+B / Ctrl+Click | 跳转到定义 |
Ctrl+Alt+B | 跳转到实现 |
Ctrl+H | 类继承层级 |
Alt+←/→ | 前进/后退(导航历史) |
Ctrl+G | 跳转到指定行 |
编辑
| 快捷键 | 功能 |
|---|---|
Alt+Enter | 快速修复 / 意图操作 |
Ctrl+Space | 基础代码补全 |
Ctrl+D | 复制当前行/选中 |
Ctrl+Y | 删除当前行 |
Ctrl+Shift+↑/↓ | 上下移动语句 |
Ctrl+/ | 行注释切换(#) |
Ctrl+Shift+/ | 块注释切换 |
Ctrl+Alt+L | 格式化代码(调用 Black/autopep8) |
Ctrl+W | 扩展选区 |
Alt+J | 多光标:选中下一个相同词 |
Ctrl+Alt+Shift+J | 多光标:选中所有相同词 |
重构
| 快捷键 | 功能 |
|---|---|
Shift+F6 | 重命名(所有引用同步更新) |
Ctrl+Alt+M | 提取函数(Extract Method) |
Ctrl+Alt+V | 提取变量(Extract Variable) |
Ctrl+Alt+C | 提取常量(Extract Constant) |
Ctrl+Alt+P | 提取参数(Extract Parameter) |
F6 | 移动模块/类 |
Alt+Delete | 安全删除(检查引用) |
运行与调试
| 快捷键 | 功能 |
|---|---|
Shift+F10 | 运行最近配置 |
Shift+F9 | 调试最近配置 |
Ctrl+Shift+F10 | 运行当前文件 |
F8 | 单步跳过(Step Over) |
F7 | 单步进入(Step Into) |
Shift+F8 | 步出(Step Out) |
F9 | 恢复执行(Resume) |
Alt+F9 | 运行到光标处 |
Alt+F8 | 求值表达式(Evaluate Expression) |
Ctrl+F8 | 切换断点 |
调试技巧
断点类型
| 类型 | 用途 |
|---|---|
| 行断点 | 最常用,执行到该行时暂停 |
| 条件断点 | 右键断点设置条件表达式,只在满足时暂停 |
| 日志断点(非挂起) | 不暂停,仅打印表达式到 Console |
| 异常断点 | 抛出指定异常时暂停 |
Python Console 调试
Run → Python Console 打开交互式 Python 会话,可在调试暂停时直接执行任意表达式,等同于 pdb 的 p 命令。
远程调试
通过 SSH 连接远程服务器的 Python 解释器(Professional):
Settings → Project → Python Interpreter → Add
→ SSH Interpreter
→ 填写主机、用户名、密钥路径
→ 映射本地路径到远程路径
适合调试 Docker 容器或云端环境,配合 Docker 使用。
代码质量工具
内置检查
PyCharm 内置 PEP 8 检查和类型推断,不需要额外配置即可看到警告。
配置外部格式化工具
Settings → Tools → Black(安装 Black 插件后出现)
☑ On code reformat(Ctrl+Alt+L 时自动 Black 格式化)
☑ On save
Settings → Tools → External Tools
→ 添加 isort、mypy、pylint 等命令行工具
mypy 类型检查集成
安装 Mypy 插件后,编辑器实时显示类型错误,与 类型注解 配合使用效果最佳。
测试运行
PyCharm 自动识别 pytest 和 unittest 测试文件:
- 点击测试函数左侧 ▶ 按钮可单独运行/调试该测试
Run → Run 'pytest in <folder>'运行整个测试目录- 测试结果面板支持过滤通过/失败,并可直接跳转到失败行
Settings → Tools → Python Integrated Tools
→ Default test runner:pytest(推荐)
Django / FastAPI 支持(Professional)
Django
Settings → Languages & Frameworks → Django
☑ Enable Django Support
→ Django project root、Settings file、Manage script 路径
- 模板文件(HTML)自动补全 Django 模板标签
manage.py命令可在Run → Manage.py Tasks中执行- ORM 查询在 Console 中可直接执行
FastAPI
- 路由注解自动识别,
Ctrl+B可从路径装饰器跳转到处理函数 - Swagger UI 端点在 Run 面板直接预览
版本控制集成
Git 的主要操作均可在 PyCharm 中可视化完成:
| 面板 / 操作 | 位置 |
|---|---|
| Commit 面板 | Alt+0(Commit Tool Window) |
| Git Log 图形 | Alt+9(Git Tool Window) |
| 冲突解决(3 路合并) | Git → Resolve Conflicts |
| Annotate(git blame) | 行号处右键 → Annotate with Git Blame |
| Stash | Git → Stash Changes |
数据库工具(Professional)
Professional 版内置 Database 工具,支持 MySQL、PostgreSQL、SQLite 等,可直接在 PyCharm 中执行 SQL 并查看结果,无需切换到 Navicat 或 DBeaver。
插件推荐
| 插件 | 用途 |
|---|---|
| Black | 一键 Black 格式化,配合 Ctrl+Alt+L |
| Mypy | 实时类型检查,标注类型错误 |
| Ruff | 超快 linter,替代 flake8/isort |
| GitToolBox | 行内显示 git blame 信息 |
| Rainbow Brackets | 括号着色,层级一目了然 |
| String Manipulation | 字符串格式互转(驼峰/下划线/Base64) |
| HTTP Client | 内置类 Postman,.http 文件发送请求 |
| Docker | Docker 容器管理与日志查看 |
| Jupyter | 支持 .ipynb 文件(Professional 内置) |
内存与性能设置
Help → Change Memory Settings
推荐设置(8GB+ 内存):
-Xms512m
-Xmx2g
-XX:ReservedCodeCacheSize=512m
开启省电模式(关闭后台索引分析):
File → Power Save Mode
常用技巧
Ctrl+P:在函数调用处显示参数签名Ctrl+Q:快速文档(显示 Docstring)Alt+F1:当前文件在项目树中定位Ctrl+Shift+T:快速跳转到 / 生成测试文件- 多剪贴板:
Ctrl+Shift+V弹出历史剪贴板 - 列选择模式:
Alt+Shift+Insert,再拖拽 - Scratches:
Ctrl+Alt+Shift+Insert新建临时 Python 文件,不影响项目结构
Run Configuration 详细配置
Run → Edit Configurations,每个运行/调试配置可设置:
| 选项 | 说明 |
|---|---|
| Script path / Module name | 运行入口(文件路径或 -m module) |
| Parameters | 命令行参数,如 --port 8080 --debug |
| Environment variables | 注入 DATABASE_URL 等环境变量 |
| Working directory | 脚本运行时的 cwd |
| Before launch | 运行前执行的任务(如 make build) |
多配置场景:为同一脚本建多个 Configuration,分别对应 dev/staging 参数,切换下拉框即可。
Scientific Mode(数据科学)
PyCharm Professional 内置 Jupyter 和科学模式(Community 版需安装 Jupyter 扩展):
Jupyter 支持
- 直接在 PyCharm 中打开
.ipynb文件,Cell 级运行 - 支持变量浏览器(Variables 面板)、绘图内联显示
Ctrl+Enter运行当前 Cell,Shift+Enter运行并跳到下一个
科学视图
# 在普通 .py 文件中,用注释分隔 Cell
# %%
import pandas as pd
df = pd.read_csv('data.csv')
df.head() # 结果显示在右侧 SciViewView → Scientific Mode:启用分离视图,左侧代码,右侧图表/数据框。
Profiler 集成
Run → Profile(需 Professional 版):
- 内置 cProfile 和 yappi 两种采样后端
- 结果以调用树、火焰图、统计表三种视图展示
- 可识别热点函数,直接从 Profiler 结果跳转到源码
对于 I/O 密集型性能问题,可用 Run → Concurrency Diagram 查看线程/协程时序。
Code Coverage(覆盖率)
右键测试文件/目录 → Run 'pytest ...' with Coverage:
- 编辑器行号侧边显示绿(覆盖)/ 红(未覆盖)
Coverage面板按模块列出行覆盖率百分比- 导出 HTML 报告:Coverage 面板工具栏 → Generate Coverage Report
# pytest.ini:配合 pytest-cov 生成报告
[pytest]
addopts = --cov=src --cov-report=htmlScratch Files(临时文件)
Ctrl+Alt+Shift+Insert
选择 Python,打开一个不属于项目的临时 Python 文件,使用当前项目的解释器环境执行,关闭 PyCharm 后仍保留。
适合:
- 快速验证一行代码逻辑
- 测试正则表达式
- 临时格式化 JSON 字符串