WSL2环境下NCL完整安装与图形配置指南
1. 项目概述为什么要在WSL里折腾NCL如果你是一个气象、海洋或者地学领域的研究者或学生那么对NCLNCAR Command Language这个名字一定不会陌生。它是由美国国家大气研究中心NCAR开发的一款强大的数据分析和可视化工具尤其在处理NetCDF、HDF、GRIB这些地球科学领域常见的栅格数据格式时堪称“瑞士军刀”。然而这把“军刀”在Windows系统上的原生安装历来都是个让人头疼的“劝退”环节。官方推荐在Linux或macOS上使用Windows用户往往需要借助Cygwin等模拟环境配置过程繁琐依赖关系复杂极易出错。这正是WSLWindows Subsystem for Linux的价值所在。WSL让我们能在Windows上获得一个近乎原生的Linux终端环境完美避开了在Windows上直接编译NCL时可能遇到的各种库冲突和编译难题。简单来说在WSL中安装NCL相当于在一个纯净、标准的Linux系统里进行安装成功率极高且能获得完整的性能体验。我自己的科研工作流就完全建立在WSL之上经过多次实践总结出了一套稳定、高效的NCL安装方法。无论你是刚接触WSL的新手还是被NCL安装困扰已久的老用户这篇指南都将带你一步步走通整个流程。2. 环境准备打造坚实的WSL基础在安装NCL之前一个健康、配置得当的WSL环境是成功的一半。很多人卡在第一步往往是因为WSL本身没有准备好。2.1 WSL的安装与版本选择首先确保你安装的是WSL 2。WSL 2相比第一代使用了真正的Linux内核在文件I/O性能和系统调用兼容性上有质的飞跃这对于需要编译和运行科学计算软件的NCL来说至关重要。安装步骤精简如下启用Windows功能以管理员身份打开PowerShell或CMD运行dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart和dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart。完成后重启电脑。设置WSL 2为默认版本重启后打开PowerShell运行wsl --set-default-version 2。安装Linux发行版打开Microsoft Store搜索并安装你偏好的发行版如Ubuntu 22.04 LTS。这是最常用、社区支持最完善的版本本指南也以此为例。注意很多朋友遇到wsl --install命令下载慢或失败的问题。这是因为该命令会从微软服务器下载内核更新包和发行版。如果网络不畅更推荐上述手动启用功能商店安装的方式通常更稳定快速。安装完成后从开始菜单启动Ubuntu完成初始的用户名和密码设置。2.2 系统更新与基础配置进入WSL的Ubuntu终端后第一件事是更新软件源并升级现有包。这能确保我们后续安装的依赖都是最新且兼容的。sudo apt update sudo apt upgrade -y这个命令可能会花费一些时间请耐心等待。完成后建议安装一些基础工具方便后续操作sudo apt install -y wget curl git build-essential实操心得build-essential这个包组非常重要它包含了GCC编译器、make等构建工具是后续编译任何软件的基础。即使NCL提供二进制包其运行也可能依赖这些工具链中的某些库。2.3 解决WSL的网络与代理配置问题从热词中可以看到wsl: 检测到 localhost 代理配置但未镜像到 wsl是一个常见错误。这是因为Windows主机上设置的代理如127.0.0.1:7890默认不会作用于WSL2的虚拟网络。解决方案在WSL的~/.bashrc文件末尾添加以下行将主机的代理地址映射到WSL中。假设主机代理端口是7890。# 获取主机IP host_ip$(cat /etc/resolv.conf | grep nameserver | awk {print $2}) # 设置代理环境变量 export http_proxyhttp://$host_ip:7890 export https_proxyhttp://$host_ip:7890添加后执行source ~/.bashrc使其生效。这样WSL内的apt和wget等命令就能通过主机的代理访问网络极大缓解“下载慢”和“超时”的问题。3. NCL安装的核心步骤详解环境就绪后我们就可以开始安装NCL了。NCL官网提供了预编译的二进制包我们直接下载安装比从源码编译要简单得多。3.1 下载NCL二进制安装包访问NCL官网的下载页面找到适用于你系统架构的预编译版本。对于WSL 2即Linux我们选择Linux x86_64版本。通常文件名类似ncl_ncarg-6.6.2.Linux_Debian9.11_x86_64_nodap_gcc.tar.gz。注意版本号可能会更新。在WSL终端中我们使用wget命令直接下载。这里以6.6.2版本为例cd ~ wget https://www.earthsystemgrid.org/dataset/ncl.662.1/file/ncl_ncarg-6.6.2.Linux_Debian9.11_x86_64_nodap_gcc.tar.gz注意事项如果下载速度慢可以尝试用浏览器在Windows主机上下载然后通过WSL的/mnt/c/Users/你的用户名/Downloads/路径访问并移动到WSL的家目录。务必确认下载的包是nodap无DAP支持还是含DAP的版本。对于大多数不需要远程OPeNDAP数据访问的用户nodap版本更小依赖更少。3.2 解压与目录安置下载完成后将其解压到系统的/usr/local目录下这是一个存放本地安装软件的常规位置。sudo tar -xzf ncl_ncarg-6.6.2.Linux_Debian9.11_x86_64_nodap_gcc.tar.gz -C /usr/local解压后/usr/local目录下会生成一个名为ncl-6.6.2的文件夹具体名称随版本变化。为了方便管理和以后可能的版本切换我们为其创建一个软链接sudo ln -sf /usr/local/ncl-6.6.2 /usr/local/ncl这样无论未来NCL版本如何升级我们只需要让/usr/local/ncl这个链接指向新的版本目录即可无需改动环境变量。3.3 安装运行时依赖库NCL的运行依赖于一系列图形和基础库。即使使用二进制包这些库也需要在系统中预先安装。执行以下命令来安装它们sudo apt install -y libhdf5-dev libnetcdf-dev netcdf-bin libgdal-dev libproj-dev proj-data libudunits2-dev libgeotiff-dev libjasper-dev libpng-dev libfreetype6-dev libexpat1-dev libx11-dev libxrender-dev libxext-dev libgl1-mesa-dev libglu1-mesa-dev关键点解析libnetcdf-dev和libhdf5-dev这是NCL读写NetCDF和HDF文件的核心库必须安装。libgdal-dev,libproj-dev,libgeotiff-dev用于地理信息处理和地图投影如果你需要做地图绘制这些是必须的。libjasper-dev用于处理JPEG2000格式的图片。libx11-dev等以libx和libgl开头的包是X Window系统的开发库和OpenGL库。这是WSL安装中最容易忽略但至关重要的一步。NCL的图形界面如x11或png输出需要这些库来创建图形上下文。缺少它们NCL可能能运行但一旦执行绘图命令就会报错提示无法打开显示设备。3.4 配置环境变量要让系统找到NCL的可执行文件和其自带的库需要设置环境变量。编辑用户主目录下的~/.bashrc文件nano ~/.bashrc在文件末尾添加以下几行# NCL Environment Settings export NCARG_ROOT/usr/local/ncl export PATH$NCARG_ROOT/bin:$PATH export LD_LIBRARY_PATH$NCARG_ROOT/lib:$LD_LIBRARY_PATH export DISPLAY:0 # 重要为图形输出设置显示目标NCARG_ROOT告诉系统NCL的安装根目录。PATH将NCL的bin目录加入系统路径这样你可以在终端任何位置直接输入ncl命令。LD_LIBRARY_PATH将NCL自带的库目录加入动态链接库路径避免运行时找不到库文件。DISPLAY:0这是WSL下图形显示的关键配置。它告诉系统将图形输出发送到哪个显示服务器。在WSL中我们通常需要借助一个在Windows上运行的X Server来显示Linux图形界面。保存并退出编辑器在nano中按CtrlX然后按Y确认再按回车。最后使配置立即生效source ~/.bashrc4. 图形显示配置让NCL的图“画”出来在纯Linux服务器上NCL的图形可以直接显示在本地。但在WSL中由于没有原生的图形界面我们需要一个“桥梁”——X Server。Windows上有很多优秀的X Server实现这里推荐使用VcXsrv。4.1 在Windows主机上安装VcXsrv前往VcXsrv的SourceForge页面下载安装程序。像安装普通Windows软件一样安装它。从开始菜单启动“XLaunch”配置如下Display settings: 保持“Multiple windows”Display number设为-1或0。Client startup: 选择“Start no client”。Extra settings:务必勾选“Disable access control”。这一步至关重要如果不勾选WSL将无法连接到X Server你会遇到“无法打开显示”的错误。点击完成VcXsrv会在后台运行你可以在系统托盘看到它的图标。4.2 测试图形显示功能回到WSL终端我们可以先安装一个简单的图形程序测试X Server连接是否成功sudo apt install -y x11-apps xeyes如果一切配置正确你应该会在Windows桌面上弹出一个经典的“两只眼睛跟着鼠标动”的窗口。这说明WSL的图形输出已经成功转发到Windows。现在测试NCL的图形功能。创建一个最简单的NCL脚本test_plot.nclbegin wks gsn_open_wks(x11,test) ; 使用x11工作站 res True plot gsn_csm_blank_plot(wks, res) ; 绘制一个空白图 draw(plot) frame(wks) end在终端运行ncl test_plot.ncl如果成功你会看到一个空白的图形窗口弹出。这标志着NCL的安装和图形配置完全成功。避坑技巧如果运行xeyes或ncl脚本时提示“Error: Can‘t open display: :0”请按以下步骤排查确认VcXsrv正在运行。确认~/.bashrc中的DISPLAY变量设置正确。在WSL终端输入echo $DISPLAY应返回:0。检查Windows防火墙是否阻止了VcXsrv。可以尝试暂时关闭防火墙测试。重新启动VcXsrv并再次确认安装过程中勾选了“Disable access control”。5. 功能验证与进阶配置安装完成后我们还需要验证NCL的核心数据处理功能是否正常。5.1 测试NetCDF文件读写找一个NetCDF格式的数据文件例如从教学网站下载的样例数据example.nc用NCL读一下变量信息ncl -n -Q faddfile(example.nc,r); print(getfilevarnames(f))这条命令会以安静模式-Q运行NCL打开文件并打印所有变量名。如果成功输出说明NetCDF库的链接是正常的。5.2 配置NCL的默认资源和库路径NCL的行为可以通过资源文件.hluresfile进行定制。这个文件位于你的家目录。你可以设置默认图形类型、颜色表、地图数据库路径等。例如如果你希望默认输出PNG图片而非弹出窗口可以创建或修改~/.hluresfile加入*wkFormat : ncgm *wkFileName : output但更常见的是我们可能需要添加额外的地图数据库或函数库。NCL自带的函数库已经非常强大但有时你需要使用第三方库。你可以将下载的第三方库.ncl文件放在某个目录然后在NCL脚本开头通过load命令加载或者将其路径加入NCARG_NCARG环境变量但更推荐前者便于管理。5.3 与Windows文件系统的交互WSL的一个巨大优势是与Windows文件系统的无缝交互。你的数据文件很可能存放在Windows的磁盘上如D盘。在WSL中这些磁盘被挂载在/mnt/目录下例如C:盘对应/mnt/c/D:盘对应/mnt/d/。这意味着你可以在NCL脚本中直接读取Windows盘符下的数据data_file /mnt/d/Research/data/weather_2023.nc f addfile(data_file, r)同样你也可以将NCL生成的图片直接输出到Windows的目录方便用Windows下的图片查看器或软件进行后续处理。实操心得虽然直接访问/mnt/很方便但对于需要频繁读写大量小文件的操作例如遍历一个包含成千上万个NetCDF文件的目录跨文件系统的性能损耗会比较明显。对于这种密集型数据处理的科研项目我建议将数据复制到WSL内部的Linux文件系统如/home/username/data/中进行计算完成后再将结果文件移回/mnt/。WSL 2的Linux文件系统性能远高于通过/mnt访问的NTFS文件系统。6. 常见问题与排查技巧实录即使按照步骤操作也可能会遇到一些问题。下面是我在多次安装和帮他人排查中积累的一些常见问题及解决方法。6.1 依赖库版本冲突或缺失问题描述运行ncl命令时报错提示找不到某个共享库.so文件例如libnetcdf.so.13: cannot open shared object file。原因分析这通常是因为系统安装的共享库版本与NCL二进制包编译时所依赖的版本不一致。NCL 6.6.2可能依赖libnetcdf.so.13而你的Ubuntu 22.04通过apt安装的可能是libnetcdf.so.19。解决方案首选方案尝试安装兼容版本的库。有时系统会提供多个版本的库包。可以搜索apt search libnetcdf看看有没有特定版本的开发包。通用方案创建软链接“欺骗”系统。找到系统里已安装的更高版本库文件为其创建一个NCL期望版本名的软链接。# 查找libnetcdf库的位置 sudo find /usr/lib -name libnetcdf.so.* # 假设找到 /usr/lib/x86_64-linux-gnu/libnetcdf.so.19.0.0 # 创建软链接 sudo ln -s /usr/lib/x86_64-linux-gnu/libnetcdf.so.19 /usr/lib/x86_64-linux-gnu/libnetcdf.so.13这种方法有一定风险需确保库的ABI应用程序二进制接口兼容。但对于NetCDF这类相对稳定的库在次版本号跨度不大时常常可行。根本方案从NCL源代码编译使其链接到你系统当前的库版本。但这过程较为复杂仅在前两种方法无效时考虑。6.2 图形窗口无法弹出或瞬间闪退问题描述运行NCL绘图脚本时图形窗口一闪而过或者根本不弹出脚本直接结束。原因分析DISPLAY环境变量未设置或设置错误。VcXsrv配置有误特别是“访问控制”未禁用。NCL脚本中缺少draw()和frame()语句或者脚本因错误而提前退出。使用了不支持的图形工作站类型。在WSL中主要支持x11和png、pdf等非交互式格式。排查步骤运行echo $DISPLAY确认输出为:0。运行xeyes测试基础图形功能。如果xeyes能正常显示问题出在NCL脚本本身。检查NCL脚本确保绘图部分被draw(plot)和frame(wks)包围。在脚本开头明确指定工作站类型为x11wks gsn_open_wks(x11, plot_name)。在运行NCL脚本时去掉-Q安静参数观察终端是否有报错信息。6.3 NCL启动报错语法错误或内部错误问题描述输入ncl命令后不是进入交互界面而是报出一堆语法错误或类似fatal:error at line 0的内部错误。原因分析这几乎总是因为环境变量NCARG_ROOT或LD_LIBRARY_PATH设置错误导致NCL找不到自己的初始化脚本或核心库。解决方案检查echo $NCARG_ROOT和echo $LD_LIBRARY_PATH确保路径正确指向NCL的安装目录。确认/usr/local/ncl这个软链接是否存在且指向正确的NCL版本目录。检查~/.bashrc中的设置是否有拼写错误。特别是路径末尾的/和变量拼接符$的使用。可以尝试在终端直接使用绝对路径运行NCL以绕过环境变量问题/usr/local/ncl/bin/ncl。如果能运行则证明是环境变量配置问题。6.4 性能优化与日常使用建议内存与交换空间处理大型NetCDF文件时NCL可能会消耗大量内存。WSL 2默认会动态分配内存但你可以在用户目录下的.wslconfig文件Windows路径C:\Users\你的用户名\.wslconfig中对其进行限制避免过度占用主机资源。[wsl2] memory8GB # 限制最大内存为8GB processors4 # 分配4个CPU核心 swap2GB # 设置2GB交换空间使用脚本模式对于复杂的分析任务强烈建议将NCL命令写入.ncl脚本文件然后使用ncl script.ncl的方式运行。这便于修改、调试和重复执行。利用NCL的强大函数库多查阅NCL官网的示例库和函数文档。几乎你能想到的常见科学绘图和数据分析操作NCL都有现成的函数或示例善于利用可以事半功倍。版本管理如果你需要尝试不同版本的NCL可以利用我们之前创建的软链接/usr/local/ncl。安装新版本后只需删除旧链接重新创建指向新版本的链接即可。环境变量无需改动实现了版本的灵活切换。

相关新闻

AI前线部署工程师:打通模型落地最后一公里的关键角色

AI前线部署工程师:打通模型落地最后一公里的关键角色

1. 项目概述:AI浪潮下的“新物种”FDE 最近和几个做AI产品落地的朋友聊天,大家不约而同地提到一个词:FDE。不是那个硬盘加密技术,而是 前线部署工程师 。这个词在AI圈子里热度越来越高,尤其是在大模型应用从“玩具”…

2026/10/10 15:16:51 阅读更多 →
Windows右键菜单终极管理方案:ContextMenuManager深度定制指南

Windows右键菜单终极管理方案:ContextMenuManager深度定制指南

Windows右键菜单终极管理方案:ContextMenuManager深度定制指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾经面对Windows右键菜单中密密…

2026/10/3 1:55:12 阅读更多 →
解决GIS开发中PROJ库找不到proj.db文件的完整指南

解决GIS开发中PROJ库找不到proj.db文件的完整指南

1. 问题引入与核心定位 如果你在运行GIS(地理信息系统)相关的Python脚本,或者使用像QGIS、ArcGIS这类依赖GDAL/OGR库的软件时,突然在命令行或日志里看到 “ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db” 这…

2026/10/3 14:50:12 阅读更多 →

最新新闻

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

螺栓销钉缺失检测:1209张VOC数据集与YOLOv8训练实践

简介:输电线路螺栓销钉缺失检测图像数据集专注电力设施智能巡检场景,面向计算机视觉研究者与电力运维开发人员,旨在解决销钉缺失这一高危隐患的自动识别问题。数据集共2000个文件、约89.52MB,包含791张高清JPEG巡检图像及1209个PA…

2026/10/12 0:32:15 阅读更多 →
AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

AI知识简记(持续更新):用TaoToken统一Key打通VS Code与Cursor的大模型调用

/* 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 0:32:15 阅读更多 →
信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

信用风险预测模型实战:从标签定义、WOE特征工程到评分卡转换

简介:这份PDF是一篇基于机器学习算法的商业银行信用风险预测模型研究论文,适合金融科技、风控建模方向的从业者、研究生及竞赛选手参考。文章从信用风险研究的现实背景切入,系统梳理了多元判别分析、Logistic回归等传统统计方法,以…

2026/10/12 0:32:15 阅读更多 →
基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

基于VGG的自然灾害图像分类:迁移学习与Grad-CAM实战

简介:这份资源面向图像识别与机器学习方向的初学者及进阶开发者,聚焦自然灾害场景的自动分类任务,帮助读者理解如何用VGG卷积神经网络完成从数据预处理到模型训练与评估的完整流程。压缩包共29个文件,约1.54MB,包含5个…

2026/10/12 0:31:15 阅读更多 →
JDK11核心新特性与升级实战:语法、API及GC全面解析

JDK11核心新特性与升级实战:语法、API及GC全面解析

1. 为什么说JDK11是继JDK8之后最值得升级的版本JDK11确实是一个非常特殊的存在。作为Oracle在2018年9月发布的LTS版本,它既是Java 8之后第一个真正意义上的长期支持版本,又是Oracle调整Java版本发布节奏后的关键节点。对于做Java开发的同学来说&#xff…

2026/10/12 0:31:15 阅读更多 →
Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

Python+OpenCV答题卡自动批改:检测、切分、考号识别与选择题评分

简介:这份源码包面向计算机、数学、电子信息等专业的学生与开发者,聚焦答题卡自动识别与批改场景,可用于课程设计、期末大作业、毕设项目或初期项目立项演示。项目基于Python实现答题卡检测、试题切分、学生考号识别与选择题自动批改&#xf…

2026/10/12 0:31:15 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →