Python
Python · 脚本 · 数据分析
脚本、数据分析、爬虫和不少课程作业的默认语言。
正在打开工具详情…
在浏览器里交错写代码和说明,数据和教学演示常用。
分析要边写边看图,或要交可运行的笔记作业。
只写长期项目代码,普通编辑器可能更合适。
Jupyter 是把代码、运行结果、图片和说明文字放在同一个文档里的交互式环境。最常见的形式是 Notebook:一个由单元格组成的 .ipynb 文件,写 Python 代码的单元格旁边紧挨着显示输出结果的单元格,边写边跑。
它的实际用法常被误解成「学 Python 的玩具」,但在数据探索里它是更合适的选择:一次分析往往是「算个统计量→ 看图→ 换个假设再算」,Notebook 的交错结构让这个循环不用来回跳文件。打开浏览器就能接着上次的分析现场继续,不用先起环境。数据与代码在同一个文件里,发给别人就能原样跑一遍——这对教学作业和需要别人复核的分析是实打实的价值。
代价要说清。它的定位是探索与交付,不是长期维护的软件工程:没有版本控制的 diff 友好性(改错了不容易看出改了什么),单元测试与模块划分也不顺手,写到几千行就该搬进 .py 文件了。它也不是零安装——Jupyter 只是界面,跑什么语言取决于 kernel 是否装了对应包(kernel 与环境不匹配是新手第一个坑)。启动一个本地服务默认会监听所有网卡,公共网络上裸跑 JupyterLab 要格外小心。
许可证是 BSD-3-Clause(各组件另有条款),官网 https://jupyter.org/install 提供安装说明。它可以本地装(Anaconda 一键带上),也可以用 Google Colab 这类云端服务(免费但依赖 Google 环境)。
上手步骤之外的具体做法:常见场景怎么配、命令怎么写、报错怎么处理。
从环境与 kernel 隔离讲到 nbconvert 批量导出与 LaTeX 公式渲染,解决 notebook 装了却跑不起来、以及怎么变成可交付文档。
Jupyter 内核(kernel)是「运行 notebook 的那个解释器」。装了 Jupyter 并不等于任何语言能跑 —— 每种语言都要有对应的 kernel 包,安装在同一个环境里。
Python 内核:
bashpip install ipykernel
python -m ipykernel install --user --name py311 --display-name "Python 3.11"--name 是内部标识(字母数字与连字符,不能有空格),--display-name 是界面上显示的名字。R 内核同理:install.packages('IRkernel') 后执行 IRkernel::installspec(user = TRUE, name = 'ir', displayname = 'R')。
最常见的报错是 Jupyter kernel not found 或内核一直停在「connecting」:多半是 notebook 元信息里记录的 kernel 名与本机已安装的不一致。用 jupyter kernelspec list 列出清单,对不上的名字要么补装、要么在 Notebook 界面里手动换。
conda / venv 解决「依赖版本冲突」,kernel 解决「Jupyter 能找到解释器」,两者正交。conda 环境不会自动出现在 JupyterLab 里,需要在每个环境里各装一次内核:
bashconda create -n stat python=3.11
conda activate stat
pip install ipykernel
python -m ipykernel install --user --name stat --display-name "stat (py3.11)"换 kernel 比想象中麻烦 —— 它会重启内核,内存中的变量全部丢失,运行中的长任务尤其要当心。
notebook 本质是 JSON(格式由 nbformat 定义),nbconvert 负责把它转成别的形态:
bashjupyter nbconvert --to html --execute report.ipynb # 执行后导出 HTML
jupyter nbconvert --to markdown --execute report.ipynb # 导出为 Markdown 文档
jupyter nbconvert --to python --stdout report.ipynb # 导出为可执行脚本
jupyter nbconvert --to notebook --clear-output --inplace report.ipynb最后一个用于清理输出,把 notebook 显著压小。
| 参数 | 作用 |
|---|---|
--execute | 执行所有单元格后再导出 |
--no-input | 导出结果但隐藏代码,适合对外分享 |
--stdout | 输出到标准输出而非文件 |
--inplace | 覆盖原文件 |
--clear-output | 清掉输出缓存 |
--ExecutePreprocessor.timeout=600 | 单个单元格超时秒数 |
导出 PDF 报错多半是缺 LaTeX(.tex 找不到),装 TeX Live 即可,或改用 --to html 再用浏览器打印成 PDF。
notebook 存的是含大量输出与执行计数的 JSON,Git diff 几乎无法阅读,两边各跑一次就会冲突。实用做法是输出不入库:把 *.ipynb 加进 .gitignore,把 notebook 当草稿、成品放 .py/.qmd。若必须提交,加一行 .gitattributes 写 *.ipynb binary 关闭 diff。
Markdown 单元格支持 LaTeX:行内用 $...$,独立公式用 $$...$$。常见问题是中文与公式混排时字间距不理想,或者 \text{} 里的中文显示为方块 —— 需要 \usepackage{ctex} 或改用 \mathrm{}。
输出乱码是另一类问题:Python 侧 print 的中文在 Windows 控制台常变问号,加两行即可:
pythonimport sys
sys.stdout.reconfigure(encoding='utf-8')需要更系统的说明时,官方文档站有完整的 Jupyter 文档(在新标签页打开),安装、内核、notebook 格式都有独立章节。
同一需求下可以先试这些,尤其是不想买商业许可的时候。
Python · 脚本 · 数据分析
脚本、数据分析、爬虫和不少课程作业的默认语言。
代码编辑器 · 扩展 · 调试
写脚本、网页和多数语言都能先用它,扩展多、启动快。
R 语言 · 统计 · IDE
写 R 的桌面环境,统计课和可重复分析常用。