惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
B
Blog RSS Feed
GbyAI
GbyAI
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recorded Future
Recorded Future
美团技术团队
The Register - Security
The Register - Security
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
The Blog of Author Tim Ferriss
博客园 - 司徒正美
量子位
B
Blog
F
Fortinet All Blogs
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
L
LangChain Blog
Latest news
Latest news
S
SegmentFault 最新的问题
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Blog — PlanetScale
Blog — PlanetScale
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cisco Talos Blog
Cisco Talos Blog
F
Full Disclosure
C
Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
W
WeLiveSecurity
T
Tenable Blog
T
Tor Project blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
在同一个文档里Markdown写作+运行代码:Jupyter Notebook入门 - 少数派
2022-02-19 · via 少数派

Jupyter Notebook 是一个开源的、基于网页的应用,它可以创建一个文档,在这个文档里,我们不但可以使用 Markdown 语法来输入文本,插入图片,还可以运行多种编程语言代码,并直接在文档里查看代码运行结果。就像这样:

因此,Jupyter Notebook 可以让我们随时输出并查看代码的运行结果,并辅之以文字和图片说明,最终实现将代码、结果、图片、文字集中在一个文档呈现的效果,它非常适合用于撰写和分享编程项目文档、编程学习笔记和教程等等。举个例子,机器学习框架 tensorflow 官网的案例、和鲸社区、等均采用了 Jupyter Notebook 或基于 Jupyter Notebook 进行二次开发来作为其在线展示或学习的平台。

Jupyter Notebook 虽然支持多种编程语言的运行,但它的安装和使用却需要依赖 Python 环境。Jupyter 官网的入门教程推荐新手使用 Anaconda 来使用 Jupyter Notebook。Anaconda 是一个预先安装了 Python、Jupyter Notebook,面向数据分析的开发平台。目前网上一些介绍 Jupyter Notebook 使用和配置的帖子也是在 Anaconda 上进行操作的。但我现在已经不喜欢过分依赖这些集合了众多包和模块、一键操作的IDE和平台了。自己一砖一瓦搭建的开发环境,会更加轻便和适合自己。

其实,在终端中使用 Python 包管理工具和一些简单的指令,就可以从容配置和使用 Jupyter Notebook了。来看看怎么实现吧。

本文会涉及到 Python 虚拟环境的使用,可戳我此前的 帖子

我们在终端中使用 pip 来安装 Jupyter Notebook,这样 Jupyter Notebook 将会被安装到本机原生的Python 环境中:

python -m pip install notebook

我们也可以在某一个虚拟环境中安装 Jupyter Notebook。考虑到在虚拟环境中安装和使用 Jupyter Notebook 的操作可以轻松推广到在原生环境中的操作,反之则不易,因此本文会介绍在虚拟环境中 Jupyter Notebook 的操作,这样可以兼顾想在虚拟环境和原生环境中使用 Jupyter Notebook的读者。

我们使用虚拟环境 A 中的 pip 来安装 Jupyter Notebook:

D:\...\venvA\Scripts\python -m pip install notebook

安装完成后,在终端进入虚拟环境 A ,执行以下指令即可打开 Jupyter Notebook :

D:\...\venvA\Scripts\activate.ps1
jupyter notebook

此时,终端会打印 Jupyter Notebook 的相关信息:

同时浏览器启动,打开 Jupyter Notebook 的主页 Home page。正如所见,Jupyter Notebook 便是这么一个基于网页的应用程序,不过它读写的是本机的文件。细看 Home Page ,这其实就是本机 C:\Users\<user name> 目录。我们新建的笔记也会保存在这个目录下。

我们可以根据自己的使用习惯将 Jupyter Notebook 的 Home Page 修改为自定义的目录,这样更有条理,也便于我们按照自己的习惯来管理。如何修改呢?

我们回到终端,在虚拟环境中执行指令,生成一个 Jupyter Notebook 的默认配置文件:

jupyter notebook --generate-config

此时终端会提示:

Writing default config to: C:\Users\<user name>\.jupyter\jupyter_notebook_config.py

现在来到C:\Users\<user name>\.jupyter\目录,就可以看到刚生成的 jupyter_notebook_config.py 文件,这是 Jupyter Notebook 的配置文件,可以用文本编辑软件打开,通过修改其中的内容,就可以实现对 Jupyter Notebook 设置的修改。

这里我用 VS code 打开,然后查找关键词c.NotebookApp.notebook_dir来到此语句位置。这个语句便是定义 Home Page 所在目录的。目前,语句前带有注释 # 号,因此未生效。

取消前方的注释 # 号来使此语句生效,并在 ‘ ’中输入新的目录来作为 Jupyter Notebook 的 Home page:

c.NotebookApp.notebook_dir = ‘D:\jupyterNotebook’

保存,关闭。

重新运行 Jupyter Notebook,可以看到此时 Home Page 已变成我们所设置的目录了,由于新目录中无任何文件夹或文件,故显示「笔记本列表为空」。

点击右上角「new」,在下拉菜单中选择一个 Python 开发环境,即可新建一个笔记。

在笔记里,可以使用 markdown 语法来输入文本,也可以输入 Python 代码并运行,直接查看运行结果。此笔记所用的 Python 环境即为我们新建笔记时所选择的 Python 环境。在这个例子中,笔记所调用的是 Jupyter Notebook 所在的虚拟环境。

现在,我们就拥有了一个可以运行 Python 代码的笔记本了。

Jupyter Notebook 调用其他虚拟环境

按照本公众号的开发习惯,我们会为不同 Python 项目配置了各自独立的虚拟环境,这些虚拟环境中所安装的包各有不同。那么,我们安装在虚拟环境 A 中的 Jupyter Notebook 能否调用虚拟环境 B 来执行笔记中的代码呢?答案是肯定的,但是我们需要进行一些配置工作。

我们暂时离开 Jupyter Notebook,在终端中,命令虚拟环境 B 安装 ipykernel 内核:

 D:\...\venvB\Scripts\python -m pip install ipykernel

ipykernel,顾名思义,是一个「内核」。作为初学者,我们只需要知道,它可以让我们的虚拟环境被 Jupyter Notebook 调用。

安装完成后,命令虚拟环境 B 中的 Python 执行指令:

D:\...\venvB\Scripts\python -m ipykernel install --user --name deepLearningVenv --display-name "Python(DeepLearning)

这个指令可以向 Jupyter Notebook 添加虚拟环境 B 。其中「 --name」后的名称为虚拟环境 B 的名称,而「--display -name」后的名称则是显示在 Jupyter Notebook 新建笔记时下拉列表中的名称,可助我们区分不同的虚拟环境,这里我们将「display name」定为「Python(DeepLearning)」,以提示这是一个用于开发深度学习项目的环境。

完成后,终端会提示:

Installed kernelspec deepLearningVenv in C:\Users\<user name>\AppData\Roaming\jupyter\kernels\deeplearningvenv

现在重新进入 Jupyter Notebook,右上角新建一个笔记,可以看到,可选的 Python 环境列表中多了我们刚刚添加的虚拟环境 B ,其显示的名称为 「Python(DeepLearning)」。

当然,也可以将某一个虚拟环境从 Jupyter Notebook 的列表中删除。

我们在终端中进入 Jupyter Notebook 所在的虚拟环境,执行以下指令就可以查看 Jupyter Notebook 所添加的虚拟环境 kernel 的列表:

jupyter kernelspec list

然后执行以下指令就可以删除指定的 kernel:

jupyter kernelspec uninstall kernelsName

重新运行 Jupyter Notebook,就可以看到所操作的虚拟环境已经从新建 Notebook 下拉列表中被移除了。

在 VS code 中使用 Jupyter Notebook

VS code ( Visual Studio Code,一个轻量 IDE) 目前已经支持 Jupyter Notebook。我们可以在 VS code 中来使用 Jupyter Notebook,这似乎比在网页上使用来得更加顺手一些。

我们在 VS code 左侧的「Extensions 拓展」中,搜索并安装 Jupyter 插件,请认准 Microsoft 出品。

安装完成后重启 VS code,选择 「 View > Command Palette...」,或者使用快捷键 ctrl+shift+P,在弹出的命令面板中输入「Jupyter」,在弹出的命令列表中选择「Juypter: Create New Jupyter Notebook」。

这样就成功在 VS code 中新建了一个 .jpynb 格式的笔记本。就如在网页中一样,我们可以插入「Code 」 片段来运行 Python 代码;也可以插入「Markdown」片段来输入文字;在右上角可以选择和切换笔记本所使用的 Python 环境。

到目前为止,我们只在 VS code 中安装了 Jupyter 拓展,就顺利地用起 Jupyter Notebook了,并没有类似「调用本机安装的 Jupyter Notebook」的操作,这似乎太简单了一些?我不禁好奇:

是不是电脑上并不需要安装 Jupyter Notebook,而仅仅在 VS code 安装 Jupyter 插件,也可以使用呢?

为此,我做了一个小实验:我在一台从未配置过 Python 相关开发环境的旧电脑上,安装了 Python 3.7.9 和 VS code,并在 VS code 中安装了 Python 拓展和 Jupyter 拓展,电脑全程没有安装 Jupyter Notebook。

我按照上述方法,在 VS code 中新建了一个 .jpynb 格式的笔记本,在其中输入了Python代码,点击运行,此时VS code弹出提示:「Python 3.7.9 64-bit 需要安装ipykernel。」

现在答案揭晓了,我们想在 VS code 中使用 Jupyter Notebook,并不一定要在电脑上安装「完整」的 Jupyter Notebook,但需要在所使用的开发环境中安装 ipykernel 内核。

点击「安装」,VS code开始下载安装 ipykernel 内核以及相关的依赖。安装完成后,再次运行笔记本中的代码,成功运行。

事实上,这与上文我们在虚拟环境中安装 ipykernel 内核来将该环境添加到 Jupyter Notebook 的操作的本质是相同的。

尾声

面向初学者的 Jupyter Notebook 安装和使用介绍到这里便结束了。文中所涉及的内容,相信已经足够帮助一名初学者顺利安装 Jupyter Notebook 并开始使用。在使用中遇到的困难以及更加进阶的玩法,请多多利用网上资源进行探索,CSDN、知乎、简书都有不少相关帖子,也可以关注微信公众号「南贝塔」,与我讨论。

「好记性不如烂笔头」,我们在编程开发中也需要多记笔记,便于日后翻阅查看。Jupyter Notebook 这样一个可以同时集合文本、图片、代码、运行结果的「笔记本」,针不戳,大家可善加利用。