
先说清楚,我不是说 Jupyter 不好。
Jupyter 是我入门 Python 用的第一个工具,曾经以为会一直用它。直到有一天,在 Jupyter 里写一个 800 行的数据处理脚本,debug 调到凌晨两点,第二天打开从头跑,发现昨晚写的逻辑自己完全看不懂了。
不是因为代码差,是因为 Jupyter 的交互模式天然不适合做长线项目。
那之后开始找替代品,试了一圈,最后留在了 Cursor 上。今天说说我为什么换了,以及 Cursor 具体解决了我什么问题。
Jupyter 的 Cell 机制在探索阶段很爽,但代码超过 200 行就开始出问题:
做过最蠢的事:在 Jupyter 里写了 3 个小时的分析脚本,保存后第二天打开,内核重启,变量全空,从头跑。结果这次跑出来的结果跟昨天不一样,查了两小时才发现是某个 Cell 的数据没刷新。
# Jupyter 里的 debug 方式
print("进来了")
print(f"x={x}")
print(f"y={y}")
print("到这里了")
# 删着删着把有用的也删了想打断点?Jupyter 不支持。想看某个时刻的变量值?print。想看调用栈?没有。
写过正经项目的人都知道,print debug 在小脚本里够用,500 行以上就是自虐。
.ipynb 文件本质上是 JSON,里面包含代码、元数据、输出结果。每次 Git diff 看到的都是乱码,根本没法做 Code Review。
nbdime 或者 nbconvert 可以在一定程度上缓解,但治标不治本。
简单说:Cursor 是基于 VS Code 的 AI 编程工具,拿来写 Python 比 VS Code 更顺手。
核心特点:
下载地址:cursor.com
在 Cursor 里,Python 脚本就是一个 .py 文件,不是 Cell 的堆叠。函数在哪就写在哪,IDE 侧边栏能看到整个文件的结构。
# 左侧有 Outline,所有函数/类一目了然
# 光标悬停在函数上,可以看到定义,不需要到处跳转
defload_data(path: str) ->pd.DataFrame:
returnpd.read_csv(path)
defclean_data(df: pd.DataFrame) ->pd.DataFrame:
df = df.dropna(subset=["date"])
df["date"] = pd.to_datetime(df["date"])
returndf
defmain():
df = load_data("sales.csv")
df = clean_data(df)
print(f"处理完成,共{len(df)}条记录")
if__name__ == "__main__":
main()Jupyter 里这段得拆成 4 个 Cell,还得分清楚执行顺序。Cursor 里就是普通的 Python 文件,符合直觉。
Cursor 的 @Codebase 功能可以问它任何关于代码的问题:
clean_data 函数做了什么”接别人代码或者重读自己旧代码时特别有用。Jupyter 里完全没有这个能力。
defcalculate_revenue(quantity, price, discount=0):
subtotal = quantity*price # 断点打这里
revenue = subtotal* (1-discount)
returnrevenue点一下鼠标,断点触发,能看到所有变量的实时值、调用栈、单步执行。Jupyter 里这不可想象。
Cursor 做得最聪明的地方——.ipynb 文件可以直接打开和编辑,不用任何额外配置。
原来在 Jupyter 里的笔记本,直接用 Cursor 打开,.py 和 .ipynb 混合用完全没问题。迁移成本几乎为零。
说实话,不高。
维度 | Jupyter | Cursor |
|---|---|---|
学习成本 | 低 | 低(VS Code 用户零成本) |
安装 | pip install jupyter | 下载安装包,打开即用 |
Jupyter 支持 | 原生 | .ipynb 直接打开 |
AI 辅助 | 需额外装插件 | 内置,效果不错 |
断点调试 | 不支持 | 支持 |
长脚本维护 | 困难 | 正常 |
Git 协作 | 差 | 正常 |
最大的障碍是习惯。用 Jupyter 用了三年,刚转到 Cursor 头两天浑身不习惯。后来把项目拆成 .py 文件,用 Cursor 打开,一个下午就回不去了。
现在是这样用的:
Cursor 为主,Jupyter 为辅。
不要一口气全部迁移。先把新项目放 Cursor 里跑,老项目留在 Jupyter,两边并行一段时间,感觉稳定了再全面切。
熟悉快捷键。VS Code 系的快捷键(Cmd+P 文件跳转,Cmd+Shift+P 命令面板,Cmd+B 侧边栏)用熟之后效率提升很明显。
AI 功能要主动用。Cmd+L 打开对话窗口,可以问任何关于代码的问题。我现在遇到不确定的逻辑,第一反应是问 Cursor,不 Google 了。
插件市场用起来。Cursor 基于 VS Code,所有 VS Code 插件都能装。Python 插件、Pylance、GitLens 都装上,体验更完整。
我不是要说 Jupyter 不好,它在教学和探索阶段仍然是最好的工具之一。但如果你的代码开始超过 200 行,开始做需要长期维护的项目,Jupyter 的局限性就开始显现了。
Cursor 不是银弹,但它解决了 Jupyter 最痛的三个问题:长代码维护、断点调试、AI 辅助。如果这些痛你也感同身受,值得试试。
你们现在用的是哪个编辑器?评论区说说,我看看大家的选择。
“无他,惟手熟尔”!有需要的用起来!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!