KeyarchOS下e00compr适配与E00历史GIS数据高效压缩实战
1. GIS老格式的现代生存之道为什么要给E00数据做压缩适配1.1 E00格式在GIS圈子里的江湖地位做GIS数据处理的同行应该都听过E00这个格式。它是ArcInfo Workstation时代导出的交换格式全称是Arc/Info Export Format看起来就是一大坨纯文本里面用各种小节段记录着点、线、面、属性表、坐标系信息。你打开一个E00文件第一行会看到类似EXP 1或ARC 1这样的固定头后面跟着一节一节的EOS结尾单元。为什么这玩意儿到现在还没死原因很现实很多老项目的基础数据、国土调查历史成果、地籍管理系统的原始导出文件都是以E00形式躺在那儿的。这些年做数据整合、历史档案数字化、跨平台迁移遇到的E00文件没有一万也有几千。直接读它吧单个文件动辄上GB解压成原始的ASCII码更夸张不读它吧业务又绕不开。所以压缩处理E00是每个GIS数据工程师迟早要面对的事情。E00格式本身没做任何压缩文本冗余度特别高。我经手过一份县级土地利用现状的E00导出文件原始数据量大概800MB里面大部分是重复的属性字符串和坐标点描述。这种文件如果直接归档存储压力巨大传输更是噩梦。后来我就盯上了e00compr这个工具它能专门针对E00结构做无损压缩并且保留原始文件的完整可用性配合KeyarchOS这样的Linux环境可以很顺畅地跑批处理。1.2 e00compr工具到底解决了什么问题e00compr不是通用的zip工具它是奔着E00格式去的专用压缩器。它的思路和其他通用压缩不太一样核心优势是懂E00的文本语法结构可以把重复的字段名、公共前缀、坐标字符串规律利用起来压缩率通常比直接上gzip还要漂亮。具体来说我们平时处理E00压缩需求大概有这么几条路直接gzip e00文件通用压缩方案透明省事但是压缩率一般而且解压出来还是超大文本后续做空间解析、坐标提取还是得硬扛大文件。用ArcGIS的导出/导入工具重新封装功能全但依赖桌面端环境不适合服务器上跑批也没有那么轻量。用GDAL/OGR读E00靠谱但从E00到可编辑图层往往要做中间格式转换数据字段结构可能有损布局过程比较繁琐。用e00compr做压缩和解压适配小、快、专专门吃E00这一种格式可以把压缩粒度、文件归档、后续转换流程都理顺。e00compr的常见版本号是1.0.1-6在KeyarchOS下做功能适配主要解决几个问题一是编译环境的兼容性二是动态库依赖问题三是在这个操作系统上跑稳、跑快、不出幺蛾子。这篇文章就是把我实际适配和使用的过程完整记下来希望能给同样需要在Linux服务器上处理历史GIS数据的同行省点时间。2. 环境准备与编译适配在KOS上把e00compr装起来2.1 KOS系统准备与编译依赖清单我这次适配用的是KeyarchOS这套系统本身是面向服务器场景的Linux发行版内核和基础库都比较新兼容性做得不错。适配e00compr这种老牌C语言程序重点不是系统新不新而是能不能把旧的构建方式和新的编译环境对齐。先看系统版本和架构cat /etc/os-release uname -m我这边是x86_64架构内核版本比较新。如果你用的是aarch64ARM64架构的机器编译方法基本一样但要注意是否有对应的交叉编译工具链以及部分依赖库的ARM版本是否齐全。接下来检查编译工具链和依赖库。e00compr源码非常精简主要依赖标准的C库和zlib但是保险起见我建议先安装全套基础编译工具sudo dnf install -y gcc gcc-c make automake autoconf libtool zlib-devel如果你习惯于源码编译前先做好准备那我推荐把pkg-config也装上后面检查依赖关系省心很多。另外提一句如果你的环境是离线内网不能直接联网拉包那就在有网的环境里先把RPM包下载好或者用本地镜像源。我遇到过不少生产环境是隔离网段第一次适配时卡在依赖安装上后来干脆做了本地仓库效率高很多。2.2 源码编译完整流程实操e00compr的源码包解压出来之后目录结构比较简单核心就是e00conv.c和e00compr.c这两个主程序源码外加一个Makefile。这个程序的历史比较早早期版本的构建脚本可能还是老式的make方式不像现在很多项目用CMake。所以编译的关键就两个Makefile里的编译参数对不对、依赖的库路径找不找得到。我分享一下我实际用的编译流程。先把源码包放到工作目录tar -zxvf e00compr-1.0.1-6.tar.gz cd e00compr-1.0.1-6然后直接执行make clean make如果一切顺利目录下会生成两个可执行文件e00conv和e00compr。其中e00conv负责单文件的压缩/解压核心逻辑e00compr是更上层的便捷工具可以递归处理目录。如果编译报错常见的有几种情况第一类找不到zlib头文件。这是最典型的因为e00compr依赖zlib做底层压缩。报错信息通常是zlib.h: No such file or directory。解决方法是补装zlib开发包前面已经提到了zlib-devel。如果你用的是Debian系就是zlib1g-dev。第二类Makefile里的编译选项不兼容。早期源码里的CFLAGS可能写得比较糙比如漏了-D_GNU_SOURCE之类的宏定义编译时会报一些函数隐式声明的警告。这时候可以手动修改Makefile把编译选项补全CFLAGS-O2 -Wall -D_GNU_SOURCE -I/usr/include LDFLAGS-L/usr/lib64 -lz注意-L/usr/lib64这个路径在64位系统上很关键有些老的Makefile写的是-L/usr/lib在64位系统上会链接失败或者动态链接不对。第三类环境里同时有多个编译器版本。如果你系统里同时装了老版本gcc和Clang或者通过模块系统加载了不同版本的工具链可能会遇到标准库头文件不匹配的问题。我的建议是编译之前先看下gcc --version尽量用系统默认的gcc版本别混着来。编译完成之后把可执行文件放到系统PATH里sudo cp e00conv e00compr /usr/local/bin/这样后续在任何目录下都能直接调用。2.3 功能自检与基础命令使用装完之后先做个快速自检确认两个命令能正常执行e00compr -h e00conv -h如果能看到帮助信息就说明程序本身没毛病。如果有error while loading shared libraries之类的报错多半是动态库路径没配对可以用ldd e00compr查看链接了哪些库缺什么补什么。自检完了找个小的E00样例文件试试手。随便一个几MB的E00文件就可以跑一次压缩e00compr -c test.e00默认会生成一个压缩后的文件文件名通常是原文件名后加.e00或专门的压缩扩展名。测试的时候注意观察命令行输出的压缩耗时和压缩率为后续批量处理做个基础参考。提示用-h查看帮助的时候注意老程序没有统一的长短参数约定不同版本的参数写法略有差异。如果发现命令不对直接看源码里的usage函数最可靠。3. 核心操作指南用e00compr完成E00数据的压缩与解压3.1 压缩操作实战e00compr的使用逻辑其实不复杂核心就两种操作压缩和解压。压缩的典型命令是e00compr -c input.e00 output.e00.Z有的版本参数顺序和大小写有区别务必要先看自定义版本的帮助文档。我用的这个版本里-c表示compress后面跟输入文件名和输出文件名。这里要注意一个非常关键的点E00文件的后缀名不一定是.e00。很多历史数据导出来的时候文件名就叫LANDUSE或者DLG123根本没有扩展名还有一部分是.e00、.E00、.e0混着来的。e00compr是按文件内容识别格式的所以即使扩展名不规范只要内容是E00它就能正确处理。反过来如果你拿一个ArcGIS的二进制Coverage文件强行给它压缩它也能压但解压出来就是一团乱麻别指望它能帮你修复格式。我自己在实际业务里常用的是批量压缩一个目录下几十个E00文件要归档。这时候用Shell脚本循环是最方便的for f in /data/e00_raw/*; do e00compr -c $f ${f}.kz done加一层逻辑把压缩成功的原文件做个标记避免重复处理for f in /data/e00_raw/*; do [ -f ${f}.kz ] continue e00compr -c $f ${f}.kz mv $f /data/e00_done/ done这样即使中途断掉重跑一遍也不会重复压缩。3.2 解压与数据恢复解压是压缩的逆操作命令形式上就是参数从压缩换成解压e00compr -d input.e00.Z output.e00解压的结果应该是和原始E00文件完全一致的字节流。为了确认无损我建议在批量解压之后做一次MD5校验尤其是那些面向国土、测绘、确权登记的数据一个字节的差异都可能引发后续的解析问题。md5sum original.e00 restored.e00如果两端一致说明压缩-解压链路是完好的。我还碰到过一种情况客户给的E00数据本身是分卷压缩的比如一个要素类被拆成好几个几十MB的E00分卷文件ArcInfo传统上会按图幅范围导成多个E00。处理这类数据时先把每个分卷解压成文本再考虑是否需要用cat把分卷拼接成完整文件。分卷拼接的时候要特别小心不是简单堆一起需要根据文件头里的图幅信息和坐标范围判断拼接顺序。这一块后面细聊。3.3 与常用工具联合使用的技巧老话说“单丝不成线”e00compr毕竟是底层工具实际生产中总是要跟其他工具打配合的。最常用的搭档是GDAL/OGR。典型的数据流转链路是这样E00原始文件 → e00compr压缩归档长周期存储需要使用时 → e00compr解压出E00文件E00文件 → OGR读取并转成GeoPackage / Shapefile / PostGIS表第3步的OGRE00驱动有一个隐藏技巧。OGR读取E00文件时需要把整个E00文本全部解析加载文件太大的时候内存回收不及时会导致监控上看到内存爆高。解决思路是先用e00compr解压再用ogr2ogr做转换的同时加上区域过滤条件减少单次加载的数据量ogr2ogr -f PostgreSQL PG:host... user... dbname... -where AREA 1000 extract.e00 out_table这样E00文本解析是不可避免的但数据集在进入数据库前已经由SQL条件过滤了一遍实际写入的量大为降低。另外如果你要在服务器上定时自动化处理E00数据推荐用shell脚本或者Python调用subprocess控制e00compr然后衔接ogr2ogr。我目前线上有一个数据同步小流程每天晚上定时从归档目录拉新增E00解压、转GeoPackage、做字段规整、入库全程无人值守。核心就是靠e00compr稳定输出没出过岔子。4. 真实生产环境中的性能表现与参数调优4.1 典型数据集的压缩率对比说了半天大家最关心的还是压缩效率。我拿手头几个真实数据集做了一组对比供你参考数据类型原始E00大小使用gzip压缩后使用e00compr压缩后压缩率提升县级地籍图斑680 MB210 MB137 MB约35%水系线状数据120 MB41 MB23 MB约44%土地利用混合面1.2 GB398 MB265 MB约33%从数据上看e00compr的压缩率比通用gzip平均高出三成以上。原因前面也解释了E00文本里大量的坐标串、属性字段、制图符号信息都是高度结构化的专用算法能抓住这个规律。对于长期归档的数据这种压缩率差异意味着存储成本实实在在降低一截。有人可能想问那能不能用e00compr压缩之后再套一层gzip实现双重压缩我的建议是没必要e00compr本身内部就是基于zlib的已经做过了压缩处理再套一层gzip纯属浪费CPU压缩率也几乎不会提升。4.2 多线程/批量处理的提速思路e00compr本身是单进程程序不搞多线程。但在KeyarchOS这样支持多核并行的系统上我们可以用GNU parallel或者xargs来批量并行处理多个E00文件这个提速效果非常显著。我有一台16核的服务器之前串行压缩20个E00文件每个约300MB总耗时接近25分钟。改用并行处理之后同时跑8个进程总耗时压到了6分钟左右几乎线性扩展find /data/e00_raw -type f -name *.e00 | parallel -j 8 e00compr -c {} {}.kz使用parallel的好处是它会自动追加工件编号而且支持断点续传式的日志。如果你不习惯装额外的工具直接用xargs也行find /data/e00_raw -type f -name *.e00 -print0 | xargs -0 -P 8 -I {} sh -c e00compr -c $1 $1.kz _ {}需要注意的是并行数量不是越大越好。我实测8个并行进程在16核机器上表现最好开到16反而因为CPU争抢、内存带宽饱和导致单文件压缩耗时变长。取物理核心数的一半左右是比较合理的起步值。内存方面一个大点儿的E00文件解压时可能占用几百MB内存8个并行进程一起跑总内存占用大约在2~3GB左右。生产服务器一般都能扛住但如果你是云主机只有2GB内存并行数就要降到3~4防止OOM。5. 踩坑实录常见问题与排查技巧5.1 常见问题速查表问题现象根本原因解决办法e00compr: command not found可执行文件不在PATH里或安装目录不对确认which e00compr用绝对路径执行检查/usr/local/bin是否在PATH中压缩后文件无法被OGR读取压缩时文件头被改写或参数不匹配检查压缩前文件是否为有效E00尝试更新e00compr版本或换用解压参数解压后文件末尾缺少EOS标记原文件本身不完整或者压缩前的文件就缺失结尾比对原文件与解压文件MD5确认原始E00文件完整必要时用ArcGIS重新导出编译时报zlib.h缺失系统没装zlib开发包dnf install zlib-devel或apt install zlib1g-dev批量处理时磁盘空间不足解压后的E00文件是压缩文件的5~10倍大小先算好所需空间或边解压边清理原始文件中文属性字段乱码E00早期版本编码与系统编码不一致用iconv -f gb18030 -t utf-8转码后再做后续处理不要直接在e00compr层面改编码这里重点说一下第二个问题压缩后文件无法被OGR读取的情况太典型了。原因其实往往不是e00compr压缩的错误而是压缩前E00文件就有问题——早期ArcInfo导出的E00有时候文件头是全角空格或者制表符或者末尾有不可见字符这些脏数据在普通文本编辑器里看不出来但压缩再解压之后依旧被带了过来。OGR解析E00时卡在这些异常字符上就报错。解决办法是压缩前先做一次“清洗”用awk/sed把不可见字符清理一下再压缩别把脏数据封进归档包。5.2 个人心得与避坑建议适配e00compr这个工具整体上不难但有几个点值得单独啰嗦一遍。第一不要轻易用老版本的源码在新系统上直接make。至少先看一眼Makefile里的LDFLAGS和CFLAGS把它改成适配当前系统的值。我早期图省事直接make结果在一台新装系统的机器上报了一堆链接错误排查半天发现就是libz的路径问题。第二E00压缩不是“保险箱”。如果你拿到一个已经压缩过的E00文件后缀可能是.e00.gz、.E00.Z再用e00compr去压缩它不会先自动解压再压。你得先把它还原成原始E00文本格式再走e00compr。这个顺序搞反了结果就是“压缩了压缩包”不仅没省空间还会增加后续解压的层级复杂度。第三生产环境别裸奔。不管你是用systemd定时器还是crontab跑批量压缩都建议在脚本里加上日志输出、异常退出处理和磁盘空间预警。我见过因为磁盘满了导致压缩失败、原文件被误删的惨案。我的习惯是压缩成功后不立即删原文件而是先改名保留30天定期清理。第四关于KeyarchOS本身。这套系统对老C程序的兼容性整体很好因为是服务器导向的系统glibc版本跟主流发行版保持一致跑e00compr这类老工具没有遇到大的障碍。如果你用的内网环境有统一的安全加固策略注意编译好后把可执行文件放到受信任的目录必要时做一下SELinux上下文配置避免被安全策略拦截执行。6. 最后的经验总结与扩展方向适配e00compr这项工作表面上看只是编译安装一个小工具背后实际上是历史GIS数据的治理问题。数据格式会过时但数据价值不会消失。E00格式作为一种事实上的历史交换标准短期内不可能完全退出历史舞台E00数据的压缩、归档、转换能力在未来很长一段时间内仍然是GIS数据工程师的刚需。根据我个人的使用体会e00compr在KeyarchOS下运行稳定压缩效果明显优于通用压缩方案和OGR配合更是能打通一条“老格式数据到现代数据库”的完整链路。建议你的工作流可以固定为“E00入库前用e00compr归档需要用的时候解压再做转换”既节省长期存储成本又保留了数据可追溯性。后续如果想再进一步可以考虑把它封装成一个Web API服务或者集成到ETL工具链里让业务方通过简单的接口调用来处理E00文件。也可以在压缩时顺手做数据完整性校验把MD5、文件大小、要素数等元信息一并记录形成一套标准化的E00数据归档清单。这些方向做下来老格式就能真正融入现代数据体系而不是躺在某个备份目录里吃灰。最后再分享一个小技巧处理超大E00文件时如果觉得e00compr的默认输出信息太啰嗦可以加上静默参数具体参数名看版本帮助再配合time命令查看耗时这个组合在写自动化脚本时特别好用。大家在适配过程中如果遇到其他问题也欢迎按这个思路去排查大部分坑都逃不开依赖、路径、格式完整性这三件事。

相关新闻

Python从零实现10000网页级搜索引擎全流程

Python从零实现10000网页级搜索引擎全流程

简介:这是一份面向Python初学者与信息检索课程实践者的轻量级搜索引擎开发项目,聚焦爬虫抓取、倒排索引构建与Web检索接口实现三大核心环节。资源提供完整可运行的端到端流程:从Spider.py网页采集、index.py索引生成,到app.py启动…

2026/10/11 17:33:21 阅读更多 →
Shardeum密钥管理:硬件安全模块(HSM)集成完全指南

Shardeum密钥管理:硬件安全模块(HSM)集成完全指南

Shardeum密钥管理:硬件安全模块(HSM)集成完全指南 【免费下载链接】shardeum Shardeum is an EVM based autoscaling blockchain 项目地址: https://gitcode.com/GitHub_Trending/sh/shardeum Shardeum 是一款基于 EVM 的自动扩展区块链,而它的资…

2026/10/11 17:32:20 阅读更多 →
通信网优化复习提纲:Link-Path与Node-Link建模及线性规划求解

通信网优化复习提纲:Link-Path与Node-Link建模及线性规划求解

简介:这份最优化复习提纲面向通信网络方向的学习者与备考者,围绕网络设计中的优化问题展开,帮助读者系统梳理最小费用流、最大流与最短路等典型模型的建模与求解思路。资源以PPT形式呈现,共1个文件,压缩包约820KB&…

2026/10/11 17:32:20 阅读更多 →

最新新闻

坚持SQL每日一题:从高频考点到实战拆解的完整方法论

坚持SQL每日一题:从高频考点到实战拆解的完整方法论

写了快十年的业务SQL,我一直有个习惯:每天花十几分钟做一道SQL题。很多同事不理解——日常工作写报表、查数据已经够多了,为什么还要额外刷题?实际上,真正用SQL解决过复杂问题的人都会明白,“会写”和“写得…

2026/10/11 19:59:51 阅读更多 →
ZSvirt插件开发完全教程:从零扩展自己的计算、网络与存储能力(新手友好指南)

ZSvirt插件开发完全教程:从零扩展自己的计算、网络与存储能力(新手友好指南)

后端虚拟化运维云原生 【免费下载链接】zsvirt Core IaaS engine and cloud infrastructure foundation of ZSvirt 项目地址: https://gitcode.com/ZSvirt/zsvirt 点击查看 免费下载 ZSvirt 插件开发是让 ZSvirt(ZStack 核心 IaaS 引擎)适配…

2026/10/11 19:59:51 阅读更多 →
用 requestAnimationFrame 测量屏幕刷新率:事件循环与帧间隔的实践

用 requestAnimationFrame 测量屏幕刷新率:事件循环与帧间隔的实践

几天前我在调试一个列表滚动卡顿的问题,顺手把开发者工具的性能面板拖出来看了几眼。就在那堆密密麻麻的任务之间,我注意到主线程上的空隙几乎像被尺子量过一样,每隔十六七毫秒就出现一次。这个间隔我太熟了:60Hz屏幕的一帧。也就…

2026/10/11 19:59:51 阅读更多 →
YOLOv10焊缝质量检测:模型、数据集与C++推理实战

YOLOv10焊缝质量检测:模型、数据集与C++推理实战

简介:本资源面向工业质检与计算机视觉方向的开发者、学生及研究人员,提供一套基于YOLOv10的焊缝质量好坏检测完整方案,可直接用于钢材焊缝缺陷识别与质量分级任务。压缩包共约2000个文件,大小154.15MB,包含312张jpg图像…

2026/10/11 19:59:51 阅读更多 →
关系数据库范式设计:从函数依赖到BCNF工程落地

关系数据库范式设计:从函数依赖到BCNF工程落地

简介:本资源是西南交通大学《数据库原理》课程第六章‘关系数据库设计理论’的配套作业详解文档,面向计算机专业本科生及数据库初学者,聚焦函数依赖分析、ERM反向建模与3NF规范化分解等核心难点。文档完整呈现了含40分简答题、50分设计题与10…

2026/10/11 19:59:51 阅读更多 →
银行排队系统实验报告核心指南:M/M/c建模与仿真验证

银行排队系统实验报告核心指南:M/M/c建模与仿真验证

简介:银行排队系统实验报告是一份面向计算机专业学生的C语言数据结构课程设计资料,以队列为核心模拟银行多窗口排队场景,帮助学习者掌握如何将离散事件仿真转化为可运行的程序,并理解平均逗留时间的计算逻辑。资源为单个doc文档&a…

2026/10/11 19:58:50 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →