pstack-claude:Linux/WSL下Claude Code故障排查全解析
如果你最近也在把 Claude Code 当作日常开发的主力工具那么下面这些报错你一定不陌生auto-update failed、no write permission to npm prefix、找不到 cowork 工作目录甚至还有 Virtual Machine Platform 缺失导致桌面端无法启动。当初为了方便复现和排查我把这些坑全部打包成一套诊断流程代号就叫 pstack-claude。这个名字有两层意思一是字面上的进程栈工具 pstack二是把问题一层层往下拆的“栈底思维”——从最外层报错往里翻直到找到真正出问题的配置、权限或者系统调用。这篇文章面向的是已经在用或者准备使用 Claude Code 的人尤其适合 Linux/WSL 环境下折腾了一圈还想继续折腾的玩家我会把这套流程里的关键工具、配置、常见问题全盘交出来。1. 项目整体设计与思路拆解1.1 为什么叫 pstack-claude从进程栈到排查栈Pstack 是 Linux 上排查运行中进程的常用工具它通过 ptrace 挂到目标进程上读取线程的调用栈。说人话就是它能告诉你在某一瞬间某个进程正在执行哪个函数、被谁调用、卡在哪一层。比如我运行pstack 12345就能看到一长串形如#0 ... #15 ...的调用帧按从内到外的顺序排列。这个“层层展开”的结构和排错时逐层剥洋葱的思路完全一致。我把这个思路用在了 Claude Code 的排错上。Claude Code 是一个 Node.js 编写的 AI 编程助手上层交互看起来很简单但底下有 npm 全局包、自动更新逻辑、交互式终端、网络请求、日志系统等多层模块。当它报错时终端里那条错误信息往往只是“栈顶”真正的问题可能藏在系统权限、环境变量甚至操作系统的虚拟化设置里。因此我慢慢沉淀出一套方法从报错文本出发逐层往下查依赖栈、文件权限栈、网络请求栈和进程线程栈最后找到根因。这套方法我起名为 pstack-claude纯粹是为了提醒自己永远先看底层的栈帧。1.2 技术选型为什么是命令行工具而不是一键重装面对一个 CLI 工具崩溃很多人的第一反应是卸载重装。但实际踩过几次坑后会发现重装只能解决“安装包损坏”这类问题对权限不足、配置路径错误、系统功能缺失几乎无用。所以 pstack-claude 的选型原则很明确尽量用操作系统自带的通用排查命令不依赖 Claude Code 内部的私有实现也不用图形化修复工具。具体来说我会分四层排查每一层都对应一组稳定好用的命令排查层级关注点常用命令系统层内核、虚拟化、WSL 状态uname -a、wsl --status运行环境层Node.js / npm 版本与全局目录权限node -v、npm config get prefix、ls -ld $(npm prefix -g)配置层环境变量、日志路径、接口端点env进程层线程栈、系统调用、网络连接ps、pstack、strace选择这些命令还有另一个理由它们的输出是标准的把现场信息贴到社区提问时别人一眼就能看懂不需要额外解释。这种可复现性在排查任何开发工具时都是宝贵的。1.3 这套流程的适用范围pstack-claude 不是某个开源仓库也不绑定特定版本。把它看作一份排错清单就可以。我实际使用过的主要环境是Ubuntu 22.04 和 Windows 11 上的 WSL2macOS 14 也验证过大部分命令。Claude Code 本身要求 Node.js 18 及以上版本npm 9 以上最佳。如果你用的是 Windows 原生终端有些命令会稍有差别但文中涉及的关键思路是一致的。针对桌面版安装失败的问题我还会单独说明 Virtual Machine Platform 的开启方式这部分在 Windows 上比较隐蔽很多人卡在这里。另外要提醒的是这套流程解决的是“环境、配置、安装、启动、运行”相关的故障不解决“Claude 回答质量问题”。模型输出不符合预期应该回到提示词和上下文里去调优而不是去翻进程栈。把适用范围划清楚排错时才能不跑偏。2. 核心细节拆解与实操要点2.1 安装 Claude Code 的标准姿势与 npm 权限陷阱先给出一套在 Linux/WSL 环境下的推荐安装路径。前提是已经装好 Node.js LTS 版本。如果你还没装 Node我非常推荐用 nvm 来管理原因是它天然把 npm 全局包安装到用户目录能避开后面一大串权限问题。curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 重新打开终端或 source ~/.bashrc nvm install --lts node -v然后全局安装 Claude Codenpm install -g anthropic-ai/claude-code claude --version正常情况下这条命令会在终端里输出版本号然后就能用claude命令启动。但如果你在安装时用了系统自带的 Node或者装了 nvm 之后又切换过目录很容易出现no write permission to npm prefix的报错。这个报错的“栈底”是什么我们先看 npm 全局目录在哪里npm config get prefix大部分 Linux 发行版上默认是/usr/local对应全局包目录/usr/local/lib/node_modules。如果你的 Node 是直接以 root 权限安装的当前普通用户对/usr/local/lib/node_modules通常只有读权限没有写权限。于是无论是安装还是后续自动更新都会出现 EACCES。解决方式有两种我更推荐第一种第一种是把 npm 全局目录迁到用户目录npm config set prefix ~/.npm-global export PATH~/.npm-global/bin:$PATH npm install -g anthropic-ai/claude-code第二种是用 sudo 安装比如sudo npm install -g anthropic-ai/claude-code。这样做虽然能装成功但 Claude Code 的自动更新机制会尝试直接更新 npm 全局包你每次更新时可能都会被权限卡住反而更麻烦。所以我在实际项目中只要见到 sudo npm 全局安装的建议都会劝人改成用户级 prefix。2.2 登录流程与地区限制提示的正确理解安装完成后首次运行claudeClaude Code 会在终端输出一个验证链接通常是一长串https://claude.ai/login?requestCodexxxxx之类的地址。你需要在浏览器中打开它登录自己的 Anthropic 账号然后把页面里显示的授权码复制回终端完成绑定。绑定成功后终端会自动进入对话窗口。这里要特别注意Claude Code 的账号体系与 Anthropic 的账号体系是绑定的不是把配置文件复制一下就行。在部分区域官方服务可能不可用具体表现为运行后直接提示app unavailable或Claude is only available in certain regions。遇到这种情况我建议先确认你的账号是否已经在官方支持区域内注册并查看官方最新的服务可用性说明。如果确实无法使用可以考虑其他合规的模型接入方式比如下文提到的兼容接口方案或者等待官方扩大支持范围。任何时候都要以官方服务条款为准不要尝试任何非官方手段去访问服务这既不符合平台条款也容易给自己带来安全和账号风险。2.3 通过兼容接口替换模型DeepSeek 等第三方 API 配置Claude Code 默认使用 Anthropic 的 API 端点但它也支持通过环境变量覆盖端点和鉴权信息这也是目前很多开发者接第三方模型的基础。比如你要把请求转发到 DeepSeek 提供的 Anthropic 兼容接口可以这样配置export ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKENsk-你的DeepSeek密钥 export ANTHROPIC_MODELdeepseek-chat claude配置完成后再启动Claude Code 的界面和交互逻辑不变但底层请求会发到 DeepSeek 的兼容端点。这里有几个细节要注意首先ANTHROPIC_AUTH_TOKEN 要填的是第三方服务商给你 API Key而不是 Anthropic 账号密钥其次不同服务商兼容度不同部分工具类功能可能不支持需要自己在测试中确认第三请求会把你的代码上下文发送到第三方服务对于敏感项目要谨慎评估数据合规风险。这套方案本质上是在模型层做替换不涉及账号层的任何绕过是很多人放在明面上用的合法配置方式。3. 实操过程与核心环节实现3.1 完整排查一个更新权限问题从报错文本到目录权限下面用一个我实际复现过的案例把整个排查过程串起来。某天我在普通的 Ubuntu 上运行claude终端直接提示auto-update failed: no write permission to npm prefix这时候一般人会去重装但没必要。先按 pstack-claude 的思路把报错文本当作栈顶逐层往下看。第一步先确认 Claude Code 的版本和 npm 全局目录claude --version || true npm config get prefix ls -ld /usr/local/lib/node_modules当时的输出大概是/usr/local下的 node_modules 目录属主是 root普通用户不能写入。直接修改权限确实也能解决但每次更新都要维护权限不优雅。于是我用 strace 抓一下文件系统调用看逻辑上到底哪些路径被拒绝strace -f -e tracefile claude --version 21 | grep -E EACCES|EPERM | tail -20命令会打印出 claude 在启动过程中尝试访问文件系统时被拒绝的具体路径。这些被拒绝的路径就是“栈底”。当时输出里能看到大量类似下面的行openat(AT_FDCWD, /usr/local/lib/node_modules/anthropic-ai/claude-code/..., O_RDONLY) -1 EACCES (Permission denied)看到路径后解决方案就非常明确了。我按前面说的方法把 npm prefix 改到用户目录重新安装再启动npm config set prefix ~/.npm-global export PATH~/.npm-global/bin:$PATH npm install -g anthropic-ai/claude-code claude --version之后自动更新再也没有因为权限问题报过错。这里有个关键心得用 strace 去验证而不是直接猜测能省去很多无意义的反复重装。权限类问题最怕的就是“我以为我可以写实际系统不让我写”日志只看报错看不出来但 strace 一行就能暴露。3.2 启动卡死与崩溃用 pstack 扒出线程在等什么比权限问题更头疼的是启动后进程不退出也没有任何报错终端就那么一直挂着。这时候我会先开另一个终端找到进程号ps -ef | grep [c]laude假设拿到进程号 61234优先用 pstack 看一下主进程正在干什么sudo pstack 61234如果 pstack 没安装可以用 gdb 替代效果类似sudo gdb -p 61234 -batch -ex thread apply all bt这两条命令会输出进程当前的线程回调。Node.js 程序虽然是单线程 JS 模型但底层有 libuv 线程池、垃圾回收线程等。通常你能看到一堆epoll_wait、poll、futex等待这表示进程正常挂起。如果看到大量线程卡在connect或者read等系统调用上就说明它在等某个外部资源返回。这时候我会配合网络相关 strace 继续定位sudo strace -f -p 61234 -e tracenetwork 21 | tail -50看到 connect 系统调用的目标地址和返回码后就能知道问题是出在 DNS 解析、防火墙拦截还是远端连接超时。如果 strace 输出里没有任何网络相关调用但进程还是卡着那就要回到日志文件里找线索。需要说明的是pstack 的读取权限受内核 ptrace 机制限制普通用户直接调用可能出现Operation not permitted这时先用 sudo 是最简单的做法。在容器场景里还需要容器具备SYS_PTRACE权限否则即使 sudo 也看不到栈。3.3 Windows 下开启 Virtual Machine Platform 解决桌面端与 WSL 异常Windows 常见的报错是启动 Claude 桌面版时提示Claudes workspace requires the virtual machine platform on Windows. Enable之类。这个报错的本意是系统缺少 Windows 的“虚拟机平台”功能。它不是 Claude 自己独有的问题WSL2、Android 模拟器、Docker Desktop 都需要它。解决办法如下在 Windows 11 或 Windows 10 上打开“控制面板 - 程序和功能 - 启用或关闭 Windows 功能”在列表里勾选“虚拟机平台”和“适用于 Linux 的 Windows 子系统”两项然后点击确定并重启电脑。重启后打开命令行执行wsl --update wsl --status确认 WSL 内核正常再启动 Claude 桌面版。如果你只装了 WSL1也建议升级到 WSL2因为 WSL2 本身就是基于虚拟化平台的很多 npm 原生依赖在 WSL2 下编译更稳定。这里有一个小提示勾选虚拟化平台后如果电脑 BIOS 里没有开启虚拟化VT-x/AMD-V系统仍然可能无法正常使用。到 BIOS 设置里确认“Intel Virtualization Technology”或“AMD SVM”为开启状态。这个点常被忽略但一旦缺了就什么虚拟化功能都跑不起来。4. 常见问题与排查技巧实录4.1 问题速查表把最近几个月在网络社区里高频出现的 Claude Code 排错问题整理成一张表方便直接对照。这里先说明每个问题都有各自的环境上下文如果表格里的方案没有解决不要慌继续往底层查日志。现象常见原因处理方案auto-update failed: no write permission to npm prefixnpm 全局目录无写权限将 npm prefix 设为用户目录或用 nvm 管理 Node避免 sudo 全局安装运行时提示 app unavailable / only available in certain regions账号所在区域不在官方支持范围确认账号区域与官方服务条款等待官方支持或选用合规的兼容接口方案启动 cowork 工作区提示找不到 start in ...启动参数里的工作目录路径不存在或拼写错误cd 到目标目录使用绝对路径启动检查目录权限Windows 下提示 requires the virtual machine platform系统未开启虚拟机平台功能在 Windows 功能中勾选“虚拟机平台”重启并 wsl --update桌面版安装失败后无法启动安装包损坏或缺少虚拟化支持重新下载官方安装包核对 SHA256开启 Windows 虚拟化npm install 时提示 EACCES: permission denied全局目录权限不足不要用 sudo改用用户级 prefix重试安装更新后命令版本没变旧版本命令路径在 PATH 前面检查 which claude清理旧路径用新路径 rehash在 IDE 里配置 Claude 模型报连接失败Base URL 或 API Key 错误核对 ANTHROPIC_BASE_URL 与 ANTHROPIC_AUTH_TOKEN 是否写对确认服务商兼容端点表的最后一行其实也适用 Trae 这类 IDE 里配置 Claude 模型的情况。只要把模型提供商给的 Endpoint 和密钥填对大多数连接问题都能解决。4.2 实用避坑技巧第一条遇到安装类报错先看 npm prefix。很多时候问题不是 Claude Code 本身而是 npm 全局目录权限不对。你只要运行npm config get prefix然后检查目录属主就能排除掉一半可能。第二条日志文件永远比终端输出更详细。Claude Code 的运行日志默认在用户目录下的~/.claude/logs每次运行的对话和错误都会有记录。遇到疑似崩溃的问题先看最新日志的尾部ls -lt ~/.claude/logs/ | head tail -n 100 ~/.claude/logs/$(ls -t ~/.claude/logs/ | head -1)日志里通常会有 JS 异常堆栈、HTTP 状态码、请求时长这些信息比终端那几行报错丰富得多。第三条WSL 环境下如果出现 DNS 解析异常先检查一下虚拟机里的/etc/resolv.conf确认 nameserver 指向的 DNS 是可用的必要时通过/etc/wsl.conf固定 DNS 生成行为。这类问题表面上看是“Claude 连接超时”实际是 WSL 的网络配置丢了。第四条临时调试时可以开启 debug 模式输出更详细的运行日志claude --debug开启后终端会输出更底层的请求日志配合上面说的 pstack、strace基本能覆盖绝大多数环境类故障。4.3 如何优雅地把现场信息交给社区如果你查了很多资料还是找不到原因准备去社区提问那么请一定把现场信息整理好。我自己的做法是准备一个固定格式的现场信息包包含六项内容操作系统与版本例如 Ubuntu 22.04、Windows 11 WSL2终端里执行的完整命令与报错原文不要截图后重打直接复制Node.js 和 npm 版本node -v npm -vnpm 全局目录及属主信息npm config get prefix ls -ld $(npm prefix -g)最新 Claude Code 日志ls -lt ~/.claude/logs/ | head -3如果进程卡死附上 pstack 或 gdb 输出片段把这些内容按顺序贴出来别人不需要反复问你很快就能定位。很多公开的排错帖之所以讨论几十楼都没有结论多半是提问的人一上来就问“为什么报错”却连版本和环境都没给。整理好的现场信息不仅能提高被帮助的概率有时候自己粘贴到一半就已经发现问题了。我个人在实际操作中的体会是AI 编程工具再智能它运行的底座依然是普通的操作系统、Node 进程和一堆配置文件。遇到问题的时候与其反复删除重装不如静下心用 pstack 的思路一层层看栈底。你每多掌握一个strace、pstack、日志定位的方法这些工具在你手里就会少一点“黑魔法”的感觉。最后再分享一个小技巧装好 Claude Code 后先顺手跑一遍npm config get prefix和claude --version把两个结果记在项目 README 里下次换机器或者升级系统时能少走很多弯路。

相关新闻

MySQL数据库保护实战:从权限控制到备份恢复

MySQL数据库保护实战:从权限控制到备份恢复

简介:面向南京邮电大学数据库系统课程实验二,这份实验报告围绕 DBMS 的数据库保护展开,适合正在完成同类实验或复习 MySQL 事务与权限管理的计算机专业学生。报告以安全控制和并发控制为主线,包含用户 U1/U2 创建与权限分配、GRAN…

2026/10/9 13:58:52 阅读更多 →
Vicinae 贡献指南:从提交 Issue 到合并 PR 的规范、格式与静态检查全流程

Vicinae 贡献指南:从提交 Issue 到合并 PR 的规范、格式与静态检查全流程

桌面应用开发工具 【免费下载链接】vicinae A focused launcher for your desktop - native, fast, extensible 项目地址: https://gitcode.com/gh_mirrors/vi/vicinae 点击查看 免费下载 Vicinae 是一个基于 QtQuick 的原生桌面启动器(command palette…

2026/10/9 13:58:52 阅读更多 →
全开源H5在线聊天室源码:即时通讯底层链路拆解与实战

全开源H5在线聊天室源码:即时通讯底层链路拆解与实战

简介:这是一套基于H5技术的在线聊天室即时通讯与交友系统源码,面向希望快速搭建实时通信平台的开发者与创业者,尤其适合具备一定PHP基础、想省去从零开发成本的中级开发者。压缩包共1296个文件,约56.7MB,以369个php业务…

2026/10/9 13:58:52 阅读更多 →

最新新闻

CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

做分布式系统做了这么久,我发现一个特别有意思的现象:很多人都把CAP背得滚瓜烂熟,一问你“CAP是什么”,张口就来“一致性、可用性、分区容错性,三者不可兼得”。可真到设计一个数据库分片架构的时候,该选什…

2026/10/9 14:29:54 阅读更多 →
银行汇款单网页制作:HTML表单与CSS布局实战详解

银行汇款单网页制作:HTML表单与CSS布局实战详解

上学时做的第一个像样的网页作业,就是这份银行汇款单。当时觉得不就是画个表格、填几个输入框嘛,真动手才发现,越看着简单的页面,越考验基本功。汇款单这玩意儿信息密度高、对齐要求严格、表单控件类型多,还要考虑打印…

2026/10/9 14:29:54 阅读更多 →
MySQL root密码忘记怎么办?重置原理与多环境实操指南

MySQL root密码忘记怎么办?重置原理与多环境实操指南

半夜十二点,微信突然响了。同事发来一串带汗的表情:“生产库连不上了,root密码不对,之前管库的兄弟走了,交接文档里写的是另一个密码……”这种场景我遇到过好几次。MySQL的root密码一旦丢失,正常的登录入口…

2026/10/9 14:29:54 阅读更多 →
MySQL root密码忘记?用skip-grant-tables重置密码实操指南

MySQL root密码忘记?用skip-grant-tables重置密码实操指南

哎,MySQL 的 root 密码忘了,这种事谁遇上谁知道。平时数据库跑得好好的,某天要改个慢查询配置或者导一份数据,输错三次直接被拒,那一刻是真的慌。其实 MySQL 官方留了一条“紧急通道”——启动时跳过授权表&#xff0c…

2026/10/9 14:29:54 阅读更多 →
数据库原理复习链路:往年卷拆解、SQL作业与课设避坑指南

数据库原理复习链路:往年卷拆解、SQL作业与课设避坑指南

简介:面向天津大学「数据库应用(原理)」课程的备考者与自学者,资源包集中整理往年试卷、课程大作业与实验报告,内容覆盖SQL语言、关系数据库模型、数据完整性、事务处理、索引构建与查询优化等核心考点,并包…

2026/10/9 14:29:54 阅读更多 →
MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现

MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现

MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现 【免费下载链接】MOSS-Transcribe-Diarize A 0.9B model for long-form transcription in 50 languages with speaker diarization, timestamps, and acoustic event awareness 项目…

2026/10/9 14:28:53 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →