zsh中source ROS2 setup.bash报错:根因分析与修复方案
看到这个报错我的第一反应不是怀疑系统装坏了而是想起自己当年第一次在 zsh 里source ROS2环境时的经历——终端里刷出一行莫名的no such file or directory后面还带个冒号怎么看都像路径被截断了。如果你正卡在这一步别急着重装系统这个错误跟/opt/ros/humble/setup.bash文件本身没太大关系真正的问题是你的shell环境和这个脚本的编写习惯不匹配。/opt/ros/humble/setup.bash是为Bash编写的脚本而报错信息中出现的.:11是zsh风格的内部提示。也就是说你的默认shell大概率是zsh却强行source了一个Bash脚本脚本在内部执行到某一处点命令. file时目标路径变成了空值于是整个沙盒环境都没能加载成功。这篇文章我会从报错信息拆解、根因分析、三种可用修复方案、以及zsh用户后续配置ROS2的完整套路一次性把这个环境变量问题讲透。1. 报错信息逐字拆解.:11到底在抱怨什么先别急着复制粘贴搜索框把这段错误拆开看你就能少走一半弯路。/opt/ros/humble/setup.bash这是正在被执行的脚本路径也是报错发生的“案发现场”。.:11这里的.是shell内置的点命令等价于source11表示出错位置在脚本的第11行。no such file or directory:冒号后面本应跟着文件名但现在是空的——这说明脚本第11行想要source的那个文件路径在运行时算出来是一个空字符串。把这三段拼起来意思就是/opt/ros/humble/setup.bash这个脚本执行到第11行时调用点命令去加载某个文件结果那个文件路径为空找不到目标。空路径怎么会产生这就得看脚本内部的结构了。我见过不少ROS2新手在论坛上贴这段报错第一反应都是怀疑“是不是.bash缺了某个依赖库”还有人去重新下载ROS2镜像。实际上脚本文件本身通常完好无损纯粹是shell执行的语境不对。你可以做个对照实验在同一个终端里先执行bash切换到Bash环境再source /opt/ros/humble/setup.bash大概率就一切正常回到zsh再执行错误又冒出来了。既然问题集中在.:11这一行下一步就该进到脚本里看看第11行到底写了什么。2. 为什么Bash脚本在zsh里会“算错路径”ROS2官方的安装指南默认你用的是Bash从/opt/ros/humble/setup.bash到后续工作区里的install/setup.bash全是按Bash语法生成的。这本身没有错但当你环境里装了Oh My Zsh、默认shell是zsh时麻烦就来了。2.1 脚本内部的变量来源不同Bash脚本获取自身路径时通常使用${BASH_SOURCE[0]}这个特殊变量。但是zsh里这个变量不是这样用的它有自己的一套数组和路径处理机制。ROS2的setup脚本在探测_THIS_ROS_DIR这类目录变量时如果按Bash惯例写在zsh里算出来的结果可能就是空字符串或者错误路径。典型的情况是setup.bash里有类似这样的逻辑_THIS_ROS_DIR$(builtin cd $(dirname ${BASH_SOURCE[0]}) pwd) ... . $_THIS_ROS_DIR/setup.bash如果_THIS_ROS_DIR没有被正确赋值后面点命令加载的路径就缺一截zsh找不到文件就在第11行附近爆出no such file or directory:。2.2 zsh对未定义变量的默认行为和Bash不完全一致你可能觉得“变量为空就为空呗报错也说得通”。但这里有个容易被人忽略的差异Bash和zsh对空变量的处理在某些细节上不一样。Bash在双引号内遇到未定义变量会展开成空字符串zsh同样会展开成空字符串但在点命令的上下文里zsh会额外检查“要加载的文件是否存在”一旦发现目标是空路径它给出的提示形式就是末尾带个冒号的怪样子。换句话说这段脚本在Bash里能“蒙混过关”是因为Bash对部分空路径采取了更宽容的展开方式到了zsh里执行路径的解析过程更严格于是第11行就成了雷区。2.3 不只zshfish也一样同样的逻辑也适用于fish shell。ROS2为fish用户准备了setup.fish为zsh用户准备了setup.zsh。如果你非要用setup.bash去套fish或者zsh各种稀奇古怪的环境变量缺失问题都会冒出来。这不是ROS2的bug是shell脚本天生有“方言”。为了加深理解可以看看/opt/ros/humble/目录下到底有几个版本的环境脚本ls -l /opt/ros/humble/setup.*正常你会看到setup.bash setup.sh setup.zsh跟fish相关的是放在更深的子目录里比如/opt/ros/humble/setup.fish也存在只是有时候不在同一层。Shell 类型正确的环境加载文件错误来源Bash/opt/ros/humble/setup.bash无Zsh/opt/ros/humble/setup.zsh误source.bash文件导致路径变量解析异常Fish/opt/ros/humble/setup.fish同上Sh/opt/ros/humble/setup.sh同上但错误提示形式不同这个表基本把问题的答案写脸上了你用zsh就该去找.zsh结尾的文件而不是跟.bash硬刚。3. 三种修复方法按场景直接选修复方案不复杂复杂的是先想明白你当前的使用场景。有人只是想在终端临时用一下有人希望每次打开终端自动加载还有人要在一个终端里同时用多个发行版的工作区。我按从“临时解决”到“长期稳定”的顺序列出来。3.1 方案一临时切到Bash加载完成后再切回来如果你只是跑一两个ROS2命令最快的方式是临时进入Bash子进程bash source /opt/ros/humble/setup.bash # 执行你的ros2命令比如 ros2 run turtlesim turtlesim_node这种方式适合一次性调试、看Demo、做个快速验证。缺点是你得待在Bash里切回zsh后环境变量就没了。而且如果终端被某些框架接管你甚至可能连bash命令都进不进去或者进入后PS1提示符样式全变了体验很差。3.2 方案二直接source zsh版本一劳永逸如果你已经确定默认shell就打算用zsh那干万不要再折腾setup.bash直接用ROS2配好的zsh脚本source /opt/ros/humble/setup.zsh执行完可以用一条命令验证环境变量是否加载成功echo $ROS_DISTRO如果输出humble就说明环境已经起来了。你还可以顺手检查一下AMENT_PREFIX_PATH、COLCON_PREFIX_PATH这些关键变量。对于需要每次开机自动加载的人来说把下边这行写进~/.zshrc的靠前位置source /opt/ros/humble/setup.zsh注意“靠前位置”三个字。如果你~/.zshrc里后面还有其他工具链配置比如有conda初始化块、有eval $(dircolors ...)这类东西顺序不同可能造成PATH互相踩踏。建议加载ROS2环境之前先确认Python环境如果conda base环境被激活ROS2的Python依赖很容易被base环境的包干扰。3.3 方案三跨shell封装为函数如果你希望无论开Bash还是开zsh都能一键加载并且不想记两套文件名可以在自己的~/.zshrc和~/.bashrc里各写一个函数。以zsh为例ros_env() { if [[ $SHELL */zsh ]]; then source /opt/ros/humble/setup.zsh else source /opt/ros/humble/setup.bash fi }以后打开终端只需要输入ros_env就能加载环境。这个方案适合管理者在多人服务器上给不同用户提供统一的加载入口。不过有一点要注意函数里判断$SHELL不合适时可能因为登录shell和当前shell不一致而产生误判更稳妥的方式是检查当前环境的变量特征比如if [ -n $ZSH_VERSION ]; then source /opt/ros/humble/setup.zsh else source /opt/ros/humble/setup.bash fi$ZSH_VERSION只有zsh环境才有Bash环境这个变量是空的用它做判断更本分。4. 手动排查链路一步一步找出“空路径”从哪来上面直接给答案可能让你觉得太顺了。实际排查这个问题最有价值的恰恰是“顺着报错往回追”的过程。我建议你按下面的排查链路走一遍只要熟练一次以后遇到类似的.:line no such file都不慌。4.1 用行号定位真实出错点先确认你正在用的shell并查看setup文件前20行echo $0 nl -ba /opt/ros/humble/setup.bash | sed -n 1,20p不同版本的ROS2生成脚本可能大同小异但第11行大多是一个点命令或者相关变量赋值。例如某些版本的setup.bash前几行长这样# generated from colcon_core/shell_template/prefix.sh.em # skip if previously sourced if [ -n $ROS_DISTRO ] [ -d /opt/ros/$ROS_DISTRO ]; then ... fi # set COLCON_CURRENT_PREFIX if [ -z $COLCON_CURRENT_PREFIX ]; then export COLCON_CURRENT_PREFIX/opt/ros/humble fi ... . $COLCON_CURRENT_PREFIX/setup.bash看到没COLCON_CURRENT_PREFIX是一个关键变量。如果你的脚本版本没有提前设置它或者在zsh环境下这个变量的导出时机不对第11行的. $COLCON_CURRENT_PREFIX/setup.bash就变成了. /setup.bashzsh立刻报错。4.2 手动模拟一遍出错现场为了证明问题出在变量为空你可以在终端里手动构造同样的错误unset COLCON_CURRENT_PREFIX . ${COLCON_CURRENT_PREFIX}/setup.bash如果你看到类似.: no such file or directory:那就说明和ROS2脚本内部遇到的问题一模一样。反过来只要你提前手动设置好变量export COLCON_CURRENT_PREFIX/opt/ros/humble source /opt/ros/humble/setup.bash再在zsh里跑一遍往往就不再报错了。这个操作虽然不能当作常规解决手段但可以帮你理解“空变量”这个核心原因。4.3 在Bash环境对照验证脚本完整性接下来把脚本本身是否损坏这个变量排除掉bash --noprofile --norc source /opt/ros/humble/setup.bash echo loaded: $ROS_DISTRO如果Bash下能正常加载说明ROS2安装目录没有缺文件脚本语法也没坏。问题核心就是shell不匹配。如果Bash下也报错那时候才需要检查安装本身比如/opt/ros/humble有没有被移动过、权限是否异常。4.4 检查ROS2环境变量是否真的生效排除掉报错之后很多新手还会被另一个隐藏问题骗过报错消失了但ros2命令却提示not found。这时候别慌检查这几个变量echo $ROS_DISTRO echo $AMENT_PREFIX_PATH which ros2如果ROS_DISTRO为空或者which ros2找不到说明你虽然运行了source命令但shell环境中的PATH并没有包含/opt/ros/humble/bin。这种情况常见于你已经source了某个setup.zsh但又因为其他配置脚本覆盖了PATH或者当前终端是一个非登录shell。解决方法是重新执行一次source并把.zshrc里的加载顺序检查好。4.5 确认是否有多个ROS版本互相干扰有些机器上同时装了ROS1和ROS2或者装了多个发行版比如Noetic和Humble。如果setup.bash第11行的逻辑基于ROS_DISTRO变量判断而你的环境里已经导入了另一个发行版的变量也会出现路径错乱。建议在执行source之前先看一眼echo $ROS_DISTRO发现是noetic或者别的就先unset ROS_DISTRO再source或者直接检查/opt/ros/目录下有哪些版本ls /opt/ros/多版本共存时建议不要同时source多个环境否则AMENT_PREFIX_PATH会叠成一长串查找包时容易出现版本冲突。5. zsh用户后续配置ROS2的完整套路把报错解决之后你要面对的其实是一整套“zsh ROS2 colcon工作区”的日常操作方式别小看这一步用对了省心很多。5.1 使用colcon生成的环境脚本也要选.zsh当你自己创建了一个ROS2工作区比如~/ros2_ws执行colcon build之后会在install目录下生成setup.bash、setup.zsh、setup.fish三份文件。很多人在zsh里习惯性运行source ~/ros2_ws/install/setup.bash结果一样可能报出或在某一行出现空路径错误。正确的姿势是source ~/ros2_ws/install/setup.zsh而且工作区环境的加载是分层的先加载系统级环境/opt/ros/humble/setup.zsh再加载工作区环境~/ros2_ws/install/setup.zsh。后者会扫描并添加你编译过的各个包到AMENT_PREFIX_PATH让ros2 run能找到自定义功能包。5.2 把环境加载逻辑写进.zshrc的推荐顺序这里给你一份我自己验证过多次的.zshrc配置顺序直接抄作业也行# 1. 基础配置插件与主题等 source $ZSH/oh-my-zsh.sh # 2. Python虚拟环境初始化如果有conda / pyenv等放这里 # conda initialize 省略... # 3. ROS2 系统环境 source /opt/ros/humble/setup.zsh # 4. 自定义工作区环境如果存在 if [ -f $HOME/ros2_ws/install/setup.zsh ]; then source $HOME/ros2_ws/install/setup.zsh fi # 5. 其他别名、快捷键 alias sbsource ~/.zshrc为什么ROS2环境要放在Python虚拟环境后面因为ROS2自带了很多依赖如果conda的基础环境先一步把PYTHONPATH改成了conda的目录再加载ROS2时部分Python库就会从conda里找版本对不上就崩溃。反过来如果你先把ROS2环境设好再激活conda环境conda提示符会覆盖你当前的虚拟环境状态同样很混乱。目前我在实际项目中更推荐先初始化Python环境再加载ROS2这样ROS2的命令和库依赖优先级更干净。5.3 多个终端复用同一个环境开了多个终端的情况下每个终端都要重新source一次。每次source都会给AMENT_PREFIX_PATH增加一次前缀理论上即使重复source同一个setup.zsh脚本内部也有防重复机制通过检查某个变量是否已设置不会像某些老脚本一样越加越长。这点可以放心。不过如果你在同一个终端里先source了系统环境再source工作区环境后来工作区代码改了又重新build了一次终端里的旧路径可能指向已经变动的目录。常见的坑是你编译完后忘了重新source导致新加入的消息接口或者服务接口找不到。所以我个人习惯是每次colcon build后重新打开终端或者再source一次工作区的setup.zsh。5.4 针对特定包的依赖覆盖问题zsh下用ROS2还有一个容易忽略的细节~/.zshrc中如果你自己定义了PYTHONPATHROS2加载时会非常痛苦。ROS2使用大量Python模块开发环境里我们经常要添加本地Python库路径export PYTHONPATH$HOME/some_python_lib:$PYTHONPATH这个操作本身没问题但如果你在.zshrc里把它写在ROS2环境加载之前ROS2的Python模块可能因为目录覆盖而生出一堆不可理喻的错误。建议这类自定义Python路径统一放到ROS2环境加载之后。排查时也可以用echo $PYTHONPATH看看里面是否混入了不属于当前项目的路径。干净的环境里/opt/ros/humble/lib/python3.10/site-packages应该是比较靠前的。5.5 自动化加载的例外情况有些场合你反而不希望终端自动加载ROS2环境。比如你只是想在zsh里写普通脚本、跑普通Python程序而系统里有两个同样名字的可执行文件一个来自ROS2的/opt/ros/humble/bin一个来自系统的/usr/bin。自动加载会提升ROS2目录的优先级导致你用到的是ROS2的版本。针对这种场景我的建议是把自动加载从.zshrc里去掉改成一个手动函数就是前面第3.3节写的那种需要ROS2的时候敲一下函数名。很多常年用ROS2的老手也喜欢这种方式避免平时开终端就被拖慢一两秒钟。6. 我在这个坑里学到的几条实操心得这个报错的处理过程虽然简单但它背后反映的其实是shell生态和机器人开发环境的配合问题。把我踩过的几条经验列出来日后你多半也会用到。第一永远先看自己的shell再选setup文件。一次简单的echo $0能帮你少平白无故多敲十几条搜索记录。别默认自己用的是Bash哪怕你当年装系统时选了Bash后来装了Oh My Zsh哥哥的登录shell也可能已经悄悄变成了zsh。第二不要轻易删除或“修正”/opt/ros/humble/setup.bash。有些教程会让你编辑setup.bash第11行手动补一个变量默认值这种改法治标不治本而且后续ROS2升级时这个文件可能被覆盖掉你的修改就白费了。真要改请在你自己的工作区脚本里做覆盖而不是动系统目录。第三排查这种报错先看变量再看文件。很多新手一看到no such file or directory就以为文件缺失顺着错误信息去找/opt/ros/humble/setup.bash文件本身结果发现文件安然无恙然后彻底懵掉。真正的排查路径应该是先确认这个路径是不是脚本内部“组合出来”的再检查组合路径的对应变量是否为空。第四善用type -a查看命令来源。比如你怀疑ros2命令加载有冲突可以用type -a ros2看看这个命令到底来自哪个路径。如果你看到多个结果说明环境变量PATH里有重复来源顺手就能清理掉。第五遇到这类问题多翻一下/opt/ros/humble目录里的setup.zsh内容。既然发行版官方专门生成了zsh版本那说明官方对zsh用户是给了明确支持的。你只是需要一个更合适的“方言版本”而不是跟Bash脚本硬碰硬。7. 再分享一个后续相关的“隐藏雷区”当你的setup.bash报错得到解决后还有一个小地方经常出来刷存在感rosdep和ros2 launch的环境变量。很多zsh用户加载环境后运行rosdep能通但运行ros2 launch某个集成包时又遇到路径找不到。这通常不是环境加载的问题而是某个功能包生成时依赖的AMENT_PREFIX_PATH没有包含你工作区的路径。比如你编译了一个自定义消息包却忘了把install/setup.zsh加入当前终端然后运行某个launch文件它内部引用消息接口时就会报找不到。这跟前面说的空路径错误表现不同但根源都一样环境变量没加载到位。我的习惯是把自己所有与ROS2相关的路径配置写进一个单独文件比如~/.ros2_env.sh这名字你随意里面只放source命令和export语句然后在.zshrc与.bashrc里都去source它。这样无论开哪个shell环境都一致而且排查时的改动面非常小。# ~/.ros2_env.sh 示例 export ROS_DOMAIN_ID42 source /opt/ros/humble/setup.zsh source $HOME/ros2_ws/install/setup.zsh 2/dev/null以后每次遇到环境变量问题只要检查这一个文件不用在两个rc文件里翻来翻去。相信我多终端、多工作区的项目里这个做法能省下你大量时间和精力。

相关新闻

一维高分辨率信号处理:从时频分析到稀疏重构的工程实践

一维高分辨率信号处理:从时频分析到稀疏重构的工程实践

简介:这份资源围绕“目标运动对高分辨率一维距离像的影响研究”展开,面向从事雷达、激光雷达、声纳信号处理及自动驾驶感知的开发者与研究人员,帮助理解运动目标带来的多普勒频移、运动模糊与采样失真问题,并给出可参考的仿真代码…

2026/10/16 12:30:54 阅读更多 →
Maya界面详解:零基础入门六大区域与视图操作

Maya界面详解:零基础入门六大区域与视图操作

这个标题一看就知道是给刚入坑Maya的小白准备的。我记得自己当年第一次打开Maya 2020的时候,盯着满屏的按钮和小图标,脑子基本是空的,不知道该点哪里,也不知道哪些东西有用、哪些可以暂时无视。折腾了一下午,最后连个立…

2026/10/16 12:30:54 阅读更多 →
长周期项目参考资源管理指南:分类、索引与工作流实战

长周期项目参考资源管理指南:分类、索引与工作流实战

做任何一个长周期项目,坚持到最后阶段的时候,都会遇到一个看上去特别不起眼、实际上分量极重的章节——参考资源。我最近收尾一个跨度超过一年的内容项目,写到第三十二章时,正文部分反而早早完成了,倒是这最后写着“参…

2026/10/16 12:30:54 阅读更多 →

最新新闻

xsync集群分发工具原理与实战:基于rsync的生产级配置同步方案

xsync集群分发工具原理与实战:基于rsync的生产级配置同步方案

1. 为什么集群环境下“复制粘贴”根本走不通——xsync不是炫技,而是生存刚需刚接手某高校实验室的分布式计算平台时,我面对的是12台物理节点组成的Hadoop模拟集群。最开始,我习惯性地用scp一条条往每个节点传配置文件:scp core-si…

2026/10/16 21:23:43 阅读更多 →
Cesium 离线地形安装全攻略:从 DEM 切片到 terrainProvider 配置

Cesium 离线地形安装全攻略:从 DEM 切片到 terrainProvider 配置

简介:这份资源面向需要在无网络环境下展示三维地形的Cesium开发者与GIS技术人员,提供将DEM地形tif文件转换为Cesium可加载离线terrain瓦片的完整工具链与操作说明。压缩包共11个文件,约45.9MB,包含msi与exe安装程序、Python脚本、…

2026/10/16 21:23:43 阅读更多 →
双向DC-DC变换器工程落地:PCB布局、控制时序与定点PID实战

双向DC-DC变换器工程落地:PCB布局、控制时序与定点PID实战

简介:本资源为2015年全国大学生电子设计竞赛(电赛)‘双向DC-DC变换器’赛题的完整参赛方案,面向嵌入式电源方向的本科生、竞赛备赛团队及硬件开发初学者,聚焦高精度恒流充电控制与宽输入电压适应性等核心难点。压缩包共…

2026/10/16 21:23:43 阅读更多 →
JVM视角:Java内部类、接口升级与instanceof模式匹配全解析

JVM视角:Java内部类、接口升级与instanceof模式匹配全解析

先说一个我自己的经历。前阵子翻一个老项目里的遗留言代码,看到一个类内部塞了三四个内部类,还有一个匿名类在某个回调里持有外部Activity的引用,结果那页面一直回收不掉,内存抖得厉害。从那次排查之后,我就养成了一个…

2026/10/16 21:23:43 阅读更多 →
从租赁到自建:呼叫中心CTI架构与分阶段实施指南

从租赁到自建:呼叫中心CTI架构与分阶段实施指南

简介:一份面向企业信息化与客服管理岗位的呼叫中心自建整体规划方案,以docx文档呈现,适用于需要从云租赁模式转向自主建设、控制运营成本并保障客户数据安全的项目决策与实施人员。方案围绕自建背景、建设目标、建设原则、分阶段实施步骤及建…

2026/10/16 21:23:43 阅读更多 →
AlphaZero五子棋实战:从零实现自我对弈与MCTS决策系统

AlphaZero五子棋实战:从零实现自我对弈与MCTS决策系统

简介:本资源是基于AlphaZero算法原理实现的五子棋AI教学代码包,面向深度学习初学者与人工智能实践者,聚焦强化学习中自对弈训练、蒙特卡洛树搜索(MCTS)与策略价值网络联合建模等核心环节。压缩包共10个文件&#xff0c…

2026/10/16 21:21:41 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

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

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →