一张图理清Python、IPython、Jupyter与Anaconda的关系与分工
刚开始学Python的时候身边几乎每个人都在装Anaconda打开别人给的Demo又要求用Jupyter跑偶尔还会看到有人敲IPython……当时我整个人是懵的我明明已经装了Python为什么还要再装这一堆东西它们是同一个东西的不同版本还是各自独立的软件这个问题不搞清楚后面的学习很容易变成“照着装了一堆东西不知道自己在用什么”。这篇不是纯安装教程而是一张工具血缘地图。Python、IPython、Jupyter、Anaconda这四者处在完全不同的层级上但它们之间有一条非常清晰的继承链Python是语言本体IPython是它的交互式解释器Jupyter又基于IPython长成了交互式计算环境Anaconda则是把这些东西和包管理、环境管理打包在一起的分发方案。把这条链弄清楚你才能理解为什么有人只敲python有人天天开Notebook有人一上来就让你装Anaconda。1. 从新手困惑说起四个名字的真实层级关系1.1 Python是一门语言也是一个解释器Python这个名字有两层含义。第一层指语言本身也就是语法规范第二层指解释器就是你把代码交给它、它帮你执行的程序。平时在终端里敲python进入的其实是Python自带的交互模式REPL也就是“读入-求值-输出”循环。这种交互模式可以用但相当朴素没有代码补全、没有彩色高亮、写长代码时历史记录也难翻。正经开发时我们通常不会长时间待在这个原始交互模式里而是把代码写成.py文件然后用python 文件名.py去执行。所以你可以把自带REPL理解成“临时草稿纸”真正交付成品的路径是脚本文件。1.2 IPython更强的交互式PythonIPython全称是Interactive Python直译就是“交互式Python”。它是对自带REPL的一次重大升级解决的是同一件事让用户在终端里写Python时更舒服、更高效。它的核心能力包括Tab自动补全、用?查看对象签名和帮助、以%开头的魔法命令、更完善的历史记录以及颜色化的输出。IPython另一个容易被忽略的特点是“可嵌入”。它不仅仅是一个独立程序它的执行内核可以嵌入到其他应用中。后来的Jupyter正是借用了这个内核能力把终端交互搬到了浏览器里。这也是为什么“IPython是Jupyter的引擎”这种说法很常见。1.3 Jupyter把运行代码变成一份会执行的文档Jupyter这个名字来源于Julia、Python、R三种语言首字母的组合它现在已经是一个跨语言的交互式计算平台。最早的形态是IPython Notebook后来独立成项目变成了Jupyter Notebook再往后升级出JupyterLab。Jupyter的核心产品形态是“笔记本文档”文件后缀是.ipynb。它把代码、运行结果、Markdown说明文字、图表输出放在同一个文档里单元格是基本操作单位。你可以一边写代码一边写注释运行结果直接出现在对应代码块的下方而不是像脚本文件那样只能从头到尾一次性执行。这个东西非常适合数据分析、教学演示以及一切“边思考边实验”的工作。1.4 Anaconda一个装着全套车轮的发行版Anaconda经常被误解成Python的替代品其实它是一个“发行版”。所谓发行版就是有人提前把Python解释器、常用科学计算库、conda包管理器、Jupyter、IDE等打包好了你装一次就能得到一个相对完整的数据科学环境。Miniconda则是它的精简版只保留Python和conda剩下所有库都按需安装。conda是这个体系里最关键的组件。它不只是Python包管理器还是一个通用的二进制包管理器能管理Python之外的系统依赖库也能创建互相隔离的虚拟环境。也就是说Anaconda的核心价值不是“预装了一堆库”而是“给了你一个可控的依赖管理方案”。为了更直观我把这四者的关系放到一张表里名字本质典型启动方式最适合的用法Python语言规范加解释器python xxx.py开发正式脚本、交付程序IPython交互式解释器ipython终端里快速调试、试表达式Jupyter交互式计算环境jupyter lab数据分析、探索性实验、记录思路Anaconda发行版加包管理工具conda create ...管理环境、安装依赖、分发运行时2. 为什么IPython比Python自带的交互模式好用这么多2.1 Tab补全与对象内省你的手不再需要离开键盘在自带REPL里输入np.之后只能凭记忆猜后面有哪些方法。在IPython里输入np.再按Tab所有可能的属性、方法全部列出来再配合上下键选择基本不会出现因为拼错方法名导致的报错。比补全更强大的是对象内省。比如你写了一个函数忘了参数顺序在IPython里直接在该函数后面加一个问号In [1]: import numpy as np In [2]: np.arange? Signature: np.arange([start,] stop[, step,], dtypeNone, *, likeNone)看到没这个输出直接把调用签名列出来了。如果是你自定义的函数函数名?还会显示出函数源码位置和docstring。两个问号函数名??则连源码都能直接调出来。这种能力在脑海里形成一个“即时文档库”不需要来回切换到浏览器查文档。2.2 魔法命令把常用操作变成单行指令魔法命令是IPython最有辨识度的设计以%开头。它们不是Python语法只在IPython环境下生效作用是解决终端交互中的高频需求。比如你想测试一段代码到底跑多快%timeit sum([i * i for i in range(100000)])它会自动多次运行并给出均值。再比如你想在当前会话里执行一个外部脚本并让脚本里的变量留下来供你继续操作%run myscript.py跑完之后脚本里定义的所有变量都留在当前交互命名空间中你可以直接在终端里继续查看、分析和修改。这一点对调试极其重要因为很多脚本本身不会自动保留中间结果。还有几个常用但容易被忽视的%whos列出当前所有变量名、类型和数据大小比dir()直观得多%hist查看历史输入记录配合%save可以把某几行历史存成脚本!ls/!pwd在IPython里直接执行系统命令感叹号后面跟系统命令即可%cd切换当前工作目录甚至支持从历史目录里模糊跳转魔法命令体系本身就很庞大你不需要全部记住先掌握%timeit、%run、%who、%hist这四条交互效率已经能翻一倍。2.3 状态保留与历史记录调试时的隐形救星Python脚本如果执行到一半抛异常进程直接退出前面算出来的中间变量全部作废。但在IPython里异常只会中断当前输入你依然拥有之前的所有上下文。代码报错后你照样能查看那个变量当前的值、检查数据形状、逐步试探修复方法。这种“可持续调试”的能力在数据清洗和算法调参时几乎不可或缺。历史记录也是一个容易忽略的细节。IPython会把每次输入的代码按编号存在内存里也能通过配置文件持久化到磁盘。下次打开终端按上下键还能翻到几天前输入过的命令。自带REPL的历史记录往往只覆盖当前会话功能弱很多。2.4 你很可能已经在用IPython而不自知这一点是针对不太清楚工具关联的人说的。你在Jupyter Notebook里新建一个Python笔记本并运行代码底层用的实际上是IPython内核。也就是说Jupyter的Python单元格完全继承IPython的魔法命令。你可以在Notebook单元格里直接写%timeit sum(range(1000))它能跑不是因为Notebook原生支持而是因为底层内核来自IPython。所以不要把IPython当成过时工具它只是换了一种形态活在你的日常开发里。3. Jupyter的“文档即实验记录”工作流是怎么运作的3.1 单元格里的半交互状态代码、结果和说明文字混排Jupyter的笔记本文档是一个JSON文件内部由一个个单元格组成。有两种主要单元格代码单元格和Markdown单元格。代码单元格负责输出运行结果Markdown单元格负责写说明、标题、公式和图表描述。这种混排方式带来一个之前从没体验过的优势你可以在同一个文档里记录“我当时为什么要做这一步”“这一步的数据长什么样”“下一步打算试哪种方案”。等过两个星期再回头看不仅能看到代码还能看到完整的推理脉络。脚本文件很难承载这种叙事性Word文档和代码之间的矛盾在这里也被消解了。3.2 内核网页只是一个遥控器很多人误以为Notebook运行代码靠的是浏览器插件其实不是。浏览器里打开的网页只是一个前端界面真正执行代码的进程是内核Kernel。内核在后台启动持有所有变量状态。前端网页和内核之间通过网络连接通信你在网页里按ShiftEnter前端把代码发给内核内核执行完把结果返回给前端显示。这个概念解释了为什么Jupyter能支持那么多语言只要某个语言实现了内核协议你就可以在Notebook里写R、Julia、JavaScript等代码。切换内核时本质是换了一个后台执行进程。所以当你遇到“代码没跑完但是关掉了网页”这种情况时内核可能还在后台继续跑变量状态也没有丢。3.3 执行顺序决定一切Notebook最隐蔽的坑Notebook的一个致命特性是“可以乱序执行”。你可以先运行第二个单元格再运行第一个单元格还可以重复运行同一个单元格多次。这意味着单元格里变量的实际值取决于你最后执行了哪些单元格而不取决于单元格在文档里的物理顺序。这个坑几乎人人踩过一个Notebook上午还能跑下午你重新打开直接点击“Run All”结果报错因为文档里某些变量依赖的是之前手动执行过的单元格结果而这次从头启动时它们没有被正确初始化。解决思路也很简单每次打开一个旧Notebook先执行Restart Run All也就是重启内核并按从上到下的顺序运行所有单元格确认这个文档能从头到尾独立跑通。如果这一步失败说明文档里的单元格依赖关系本身就存在隐患。3.4 从Notebook到JupyterLab从单文档到工作台Jupyter Notebook的界面是一个文档一个页面适合单个文件内的探索但如果你想同时打开多个Notebook、一个终端、一个数据文件预览器那就很别扭。JupyterLab就是为这种多任务场景设计的。JupyterLab把Notebook、终端、文本编辑器、文件管理、数据查看器统一进同一个窗口布局里。你可以把浏览器窗口分成左右两块左边跑Notebook右边打开一个终端再拖一个CSV文件预览数据。JupyterLab还支持安装扩展比如代码格式化、拼写检查、主题切换等。现在新项目我基本只开JupyterLab不太会主动回到旧版Notebook界面。4. Anaconda到底解决了哪些真实痛点4.1 许多科学计算库不是简单的Python包只要用过pip install numpy的人多少都经历过“装上了但import报错”的绝望。原因在于这些科学计算库不只是一堆纯Python代码它们还包含大量C、C、Fortran编译出来的二进制库。pip在安装时如果找不到预编译的wheel就会尝试在本地编译源码而编译过程依赖系统编译器、链接器、BLAS库等。环境不同这个链条很容易断。conda的高明之处在于它不只管理Python包还管理这些包底层的非Python依赖。它从二进制层面直接解决依赖关系下载的包自带编译好的库文件不需要你本机具备完整编译工具链。这正是它在数据科学领域流行的根本原因安装体验稳定。4.2 conda与pip一辆汽车的两本使用手册很多人会问“有了pip为什么还要用conda”。这两者不是同类工具。pip是Python官方的包安装器只管Python包conda是通用包管理器除了Python包还能管理Python解释器本身、系统库、CUDA这样的驱动级组件。在实际环境中conda和pip可以共存但混用要谨慎。经验法则是能用conda装的包优先用conda装因为conda会同步处理非Python依赖conda里没有的包再退而求其次用pip装。最忌讳的是在同一个环境里频繁交替使用两个工具去装同一个包因为conda不知道pip装过什么pip也不知道conda装过什么最后可能出现库版本互相覆盖而两个管理器都意识不到的局面。4.3 环境隔离让每个项目各自为政没有虚拟环境的时候所有项目共用同一套Python和第三方库。项目A需要numpy 1.24项目B需要numpy 1.26两头一挤要么A崩要么B崩。conda环境通过隔离的方式让每个项目拥有独立的Python版本和依赖树。创建环境的命令很简单conda create -n project_x python3.11 -y conda activate project_x这里project_x是环境名称你可以命名成任何贴近项目的名字。激活之后终端提示符前面会多出环境名当前终端里的python、pip都指向这个环境里的版本不会和系统Python冲突。需要切走时执行conda deactivate即可。4.4 Anaconda还是Miniconda我的选择标准Anaconda最大的优点是“开箱即用”装完就有几百个常用库。但代价也很明显体积大、安装时间长、预装版本固定、未来升级容易混乱。对很多新手来说Anaconda把决策都帮你做了这是好事但对需要精细化管理的项目来说一堆你用不到的预装包反而成为依赖冲突的来源。我的个人选择是Miniconda。它只有Python和conda体积小安装快需要哪个库再conda install装哪个。环境隔离能力一点都不少只是多了一步动手安装的过程。如果你希望尽快能跑通数据分析流程、不想折腾依赖细节那Anaconda依然是不错的选择。关键是别把这两个选项当成对错它们只是“预装多寡”的区别。5. 把这一套环境装好并配置顺手的完整顺序5.1 装完之后的三个基础检查装好Miniconda或Anaconda之后先别急着创建环境打开新的终端窗口做三个基础检查which python which ipython jupyter lab --versionwhich python应该指向conda安装目录下的Python而不是系统自带的Python。如果指向了系统路径说明PATH的优先级不对后续所有依赖管理都会被绕开。这个问题的典型特征是在终端里激活conda环境后python --version还是系统旧版本包装了却找不到。先确认路径再干别的。如果ipython还没有安装可以用conda install -n base ipython先装上或者直接等创建项目环境后再装。JupyterLab同理确认能输出版本号即可。5.2 创建项目环境并安装JupyterLab我建议所有实际操作都在独立的conda环境里进行不要直接往base环境里堆包。base环境是conda自己的底盘把它保持干净能减少很多莫名其妙的依赖冲突。创建一个项目环境并安装常用工具conda create -n py311 python3.11 -y conda activate py311 conda install -n py311 ipython jupyterlab -y如果conda安装jupyterlab比较慢也可以改用pip install ipython jupyterlab这里需要说明的是install的时候指定-n py311和先激活环境再直接conda install效果基本相同。实践中我更习惯先激活当前环境再直接安装这样下载的包会落到当前环境减少认知负担。5.3 让Jupyter能认出台上不同conda环境一个常见的困惑是我已经在conda环境里装了Jupyter为什么打开Notebook后还是只能用base环境的内核因为Jupyter启动时读取的是当前环境的内核列表而每个环境需要显式把内核注册给Jupyter才能被看到。给当前环境注册内核conda activate py311 python -m ipykernel install --user --name py311 --display-name Python 3.11 (py311)注册之后在JupyterLab右上角选择内核时会多出一个名为“Python 3.11 (py311)”的选项。选它之后Notebook里运行的代码就会使用py311这个conda环境里的Python和第三方库。这一点是解决“终端能importNotebook不能import”问题的关键。5.4 上手必记的Jupyter快捷键与conda速查JupyterLab里最小可用的快捷键组合如下操作快捷键运行当前单元格并跳到下一个ShiftEnter删除当前单元格Esc后连按两次d在当前单元格上方插入Esc后按a在当前单元格下方插入Esc后按b把当前单元格改成MarkdownEsc后按m把当前单元格改回代码Esc后按y打开命令面板CtrlShiftPconda速查命令也整理成一张表操作命令创建环境conda create -n name python3.11激活环境conda activate name退出环境conda deactivate查看所有环境conda env list删除环境conda env remove -n name导出环境配置conda env export environment.yml从配置重建环境conda env create -f environment.yml这些命令高频使用没必要死背收藏起来随用随查。重点记住“激活环境”“查看环境列表”“导出配置”这三条就已经能应付大部分项目交接场景。6. 不同场景下的工具分工与我的排错经验6.1 我的工具选择逻辑脚本、调试、探索分开工具多不意味着都要用。我的选择逻辑很直接如果目的是交付一个可以重复运行的程序那一定写.py脚本用python 脚本名.py执行不依赖Notebook环境如果只是临时验证一段代码、算一个结果就进IPython一条条敲敲完即走如果要做数据探索、写带图表的分析报告、记录完整的思考过程就开JupyterLab跑Notebook。这三者背后的心态完全不一样。脚本追求的是确定性和可维护性Notebook追求的是灵活性和叙事性IPython追求的是轻量快速。非要在一个工具里干所有事情结果往往是脚本变得不伦不类Notebook变得难以维护。6.2 经典问题终端能importJupyter却报错这是我在各种交流群里看到最多的问题。用户在一个conda环境里确认import pandas没问题但打开Jupyter后写同样一行代码却报ModuleNotFoundError。碰到这个情况先别急着怀疑包没装好大概率是内核选错了。Jupyter启动后你看到的“Python 3”很可能指向base环境而不是当前激活的项目环境。解决方法是按第5.3节的方法把项目环境的内核注册给Jupyter并在Notebook右上角切换到对应内核。还有一个可能性是你在某个环境里装了Jupyter又在另一个环境里装了pandas然后从第三个环境启动Jupyter三者错位。排查方法很简单在Notebook里执行import sys; print(sys.executable)看它打印的Python解释器路径是不是你预期环境下的路径。不是的话内核对错了。6.3 依赖分裂conda和pip混装的教训我自己踩过最深的坑是conda和pip混装造成的依赖分裂。当时在一个环境里用conda装了scipy后续看到一个pip包要求numpy换成更新版本就顺手pip install --upgrade numpy结果numpy和scipy的二进制接口不兼容import scipy直接报错。从那以后我给自己的规矩是项目首次搭建时优先用conda装所有能装的底层库只有conda里确实没有的纯Python包才用pip装。混用的项目一定要及时导出环境配置比如用conda env export同时记录conda依赖再用pip freeze记录pip依赖。环境崩了之后最快的修复不是逐个调整版本而是删掉环境用导出的配置重建。6.4 一个小习惯让旧Notebook永远可以复现最后分享一个让我少踩很多坑的习惯。每次拿到别人给的Notebook或者重新打开自己很久以前写的Notebook第一件事永远是Restart Run All而不是直接看代码或单点某个单元格。Restart Run All会清空所有历史状态从空白内核开始按顺序执行全部单元格。只有这次运行通过了这个Notebook才算真正可复现。如果这个操作直接中途断掉我基本不会花太多时间在旧文档里做“点状修补”而是会复制一份把缺失的import、被覆盖的变量、依赖顺序重写一遍。Notebook最珍贵的是里面记录的分析思路和可视化结果但代码结构本身往往需要重新清理一遍才能变成一个可以长期回看的成品。

相关新闻

SPWM三相六路互补输出与调频调压:死区、载波比与V/F控制详解

SPWM三相六路互补输出与调频调压:死区、载波比与V/F控制详解

简介:面向STM32F103C8T6三相电机驱动与变频控制场景,该资源提供基于高级定时器TIM1查表法生成三相六路互补SPWM的完整工程。代码生成相位互差120的六路PWM,可配置死区时间,并通过恒压频比策略实现调频调压,适用于逆变器…

2026/10/13 14:23:19 阅读更多 →
西门子S7-1200 PLC机器人码垛与AGV调度系统实战解析

西门子S7-1200 PLC机器人码垛与AGV调度系统实战解析

先交代一下背景。这套项目是某食品企业码垛工段的自动化改造,原来的方案是人工作业加一台老旧机械臂,产能跟不上、垛形不稳定,客户一口气提了三个需求:自动码垛、空满垛转运、AGV自动接驳。设备清单下来的时候列的是两台西门子S7-…

2026/10/13 14:23:19 阅读更多 →
健康管理系统PRD拆解:从角色权限到数据字段的落地指南

健康管理系统PRD拆解:从角色权限到数据字段的落地指南

简介:《传智健康PRD文档1》是一份面向健康管理系统的产品需求说明书,适合产品经理、研发与测试人员梳理业务逻辑、明确功能边界。文档围绕数据结构管理展开,对健康评估指标进行规范化定义:涵盖序号、指标名称、参考值、单位、针对…

2026/10/13 14:23:19 阅读更多 →

最新新闻

指标体系与数据采集:业务语言翻译与端到端契约实践

指标体系与数据采集:业务语言翻译与端到端契约实践

1. 这不是“搭个看板”那么简单:指标体系本质是业务语言的翻译工程很多人一听到“数据产品-指标体系与数据采集”,第一反应是:“哦,不就是埋点、接数、做BI看板?”——这种理解偏差,恰恰是多数数据项目半途…

2026/10/13 15:15:47 阅读更多 →
Postman+Jenkins在Windows上的接口自动化验证流水线

Postman+Jenkins在Windows上的接口自动化验证流水线

1. 项目概述:这不是“自动化测试”的幻觉,而是真实可落地的接口交付流水线起点你有没有过这样的经历:在Windows电脑上用Postman调通了一个API,截图发给同事说“这个接口好了”,结果第二天对方反馈“返回字段变了”“状…

2026/10/13 15:15:47 阅读更多 →
ABAP开发新范式:用XCO Libraries把数据字典操作变成积木式拼装

ABAP开发新范式:用XCO Libraries把数据字典操作变成积木式拼装

入行头几年,我一度觉得 ABAP 最不缺的就是"能干活但特别绕"的 API。建一张自定义表,要在 SE11 里一屏一屏地敲;程序里想看一下某个数据元素的属性,得先记住 DDIF_DTEL_GET 那套出参顺序。直到有一次做数据迁移准备&…

2026/10/13 15:15:47 阅读更多 →
轻量模型在算法复习中的“盲盒抽题”设计:动态调整题目难度与知识点

轻量模型在算法复习中的“盲盒抽题”设计:动态调整题目难度与知识点

很多刷过两三百道 LeetCode 的同学都会陷入同一种倦怠&#xff1a;按照“Hot 100”顺序从前往后刷&#xff0c;看到题目第一眼就能联想起官方题解里的关键变量名&#xff0c;甚至连双指针的 left < right 还是 left < right 都能肌肉记忆背出来&#xff1b;可一旦关掉题解…

2026/10/13 15:15:47 阅读更多 →
城市停车难诊断:多源异构数据清洗与时空特征工程实战

城市停车难诊断:多源异构数据清洗与时空特征工程实战

简介&#xff1a;本资源为2022年五一杯数学建模竞赛C题——火灾报警系统优化的完整建模解决方案&#xff0c;面向高校数学建模参赛学生、指导教师及应急管理领域研究者。针对探测器选型、误报研判、辖区管理评估与系统维护四大实际问题&#xff0c;资源构建了熵权-TOPSIS综合评…

2026/10/13 15:15:47 阅读更多 →
CTF逆向入门:从pyc文件到flag的Python字节码逆推实战

CTF逆向入门:从pyc文件到flag的Python字节码逆推实战

第一次看到 BUUCTF 里的 [GWCTF 2019] pyre&#xff0c;我以为是某个冷门语言框架的名字。点进去才发现&#xff0c;它给的是一个 .pyc 文件&#xff0c;考的是 Python 逆向。 pyre 这个题名放在 CTF 语境下&#xff0c;基本可以理解为 Python Reverse 的缩写&#xff0c;也…

2026/10/13 15:14:45 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目&#xff0c;我最大的感受是&#xff0c;大部分坑不是出在技术前沿&#xff0c;而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节&#xff0c;最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了&#xff0c;很难不碰到舵机控制这道坎。做智能小车要转方向&#xff0c;做机械臂要抬关节&#xff0c;做云台要偏航俯仰&#xff0c;背后都是同一个东西在干活&#xff1a;舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”&#xff1f;——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台&#xff1f;或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜&#xff1f;又或者&#xff0c;在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介&#xff1a;基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码&#xff0c;面向计算机相关专业课程设计与期末大作业学生&#xff0c;以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程&#xff0c;…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程&#xff1a;键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化&#xff0c;十个新手有八个栽在"往输入框里填东西"这件事上&#xff1a;要么填不进去&#xff0c;要么填了一半&#xff0c;要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程&#xff1a;阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀&#xff1a;什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面&#xff0c;跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →