Python报错ModuleNotFoundError: No module named ‘lxml‘?一文讲透排查思路
做了这么多年Python开发我见过太多人在pip install lxml上栽跟头。明明命令行里提示Successfully installed lxml结果一运行爬虫脚本迎面就是一行红字ModuleNotFoundError: No module named lxml。更气人的是你跑去问别人得到的回答往往是“你是不是没装”——可你明明装了。这个报错几乎可以说是Python环境问题里的“样板戏”。它不只在lxml身上出现opencv、pkg_resources、pandas这些包同样会以这个方式出场。今天我不打算只丢给你一句“重装一下就好”而是把这类问题背后真正的工作原理讲清楚让你以后再看到ModuleNotFoundError时自己能快速定位到底是哪一环出了问题。这篇文章适合刚入门Python的小白也适合被环境问题折磨过几次的老手。我会以lxml为主角把“包装了却找不到”这个千古谜题从报错原理、环境归属、安装失败、编译陷阱到通用排查方法一节一节拆开讲。1. 先看报错本身ModuleNotFoundError到底在说什么1.1 这行英文拆开看No module named lxml的核心关键词是module。Python里一切皆对象但能被import进来的东西统一叫模块。当你执行import lxml时解释器会做一件很简单的事按照预设的搜索路径去找一个叫lxml的包或模块。这个搜索路径就藏在sys.path里通常包含当前脚本所在目录、标准库目录以及site-packages目录。如果找了一圈没找到解释器就抛出一个异常这就是你看到的ModuleNotFoundError。ModuleNotFoundError是Python 3.6开始引入的它是ImportError的子类。Python 3.5及以前的版本只会报ImportError: No module named lxml新版Python特意拆出来一个更精确的异常类型方便开发者区分“模块不存在”和“导入过程中出错”是两回事。1.2 关键在“哪个Python在跑你的代码”这句话看着像废话但90%的ModuleNotFoundError问题都死在这里。我来打一个比方你家有厨房和茶水间厨房里有菜刀茶水间里没有。你跑到茶水间喊“怎么没有菜刀”——这不是菜刀不存在是你找错了地方。Python环境也是一样。你的电脑上可能装了好几个Python有从官网下的Python 3.11有装Anaconda时带出来的Python 3.9还有项目里创建的虚拟环境Python 3.10。你在命令行窗口敲pip install lxml装进去的是“某个特定Python的site-packages”。而你运行脚本时用的又是“另一个Python”。两个Python之间互相看不见对方的包于是报错就产生了。所以ModuleNotFoundError: No module named lxml的准确翻译是当前正在运行的这个Python解释器在它自己的搜索路径里找不到 lxml 模块。它不代表你的电脑上没有lxml只代表“这一个是空的”。1.3 导入名和包名还不一定一样这里再埋一个伏笔import后面的名字和pip安装时写的包名并不总是相等的。lxml比较老实安装名和导入名都是lxml。但很多知名库不是这样你pip install opencv-python导入时却要写import cv2你pip install beautifulsoup4导入要写from bs4 import BeautifulSoup。如果你在网上搜代码只看安装命令不看导入方式装了包之后照样报ModuleNotFoundError而且往往排查半天都反应不过来。这个问题在lxml上不明显但我在讲通用排查方法时还会提到它因为它才是很多新手卡住的隐性原因。2. 最闹心的坑pip装了但它装进了别的环境2.1 一台电脑可能藏着好几个Python很多人的电脑经历过这样的演变先装了Python 3.8后来看教程装了Anaconda再后来新项目要求Python 3.10又装了一个。这三个Python分别住在不同的目录各自带了一套独立的site-packages。Windows下打开命令行输入python到底启动的是哪一个这取决于系统环境变量PATH里的目录顺序。PATH里排在前面的Python会先被找到并执行。同样的命令行里的pip命令也是去PATH里找名为pip.exe的可执行文件。如果PATH里有多个pip那执行的又是“排在最前面那一个”。重点来了命令行里敲的pip归哪个Python管不取决于你心里想的是哪个Python而取决于PATH的顺序。这就可能出现一种让人抓狂的情况你敲pip --version显示的是Python 3.8的pip。你敲python --version显示的是Python 3.10。你用pip install lxml装进了3.8的site-packages。你的脚本用Python 3.10运行自然找不到lxml。更隐蔽的是有些人安装了虚拟环境工具venv、virtualenv或者用conda创建了不同环境。进入某个conda环境后python和pip指的又是另一套东西。一旦环境没激活清楚或者命令行窗口没重启环境归属就会错乱。2.2 先花两分钟确认归属遇到ModuleNotFoundError不要急着重装。先确认当前环境到底是哪个Python在管事。Windows上我用这几条命令where python where pip python -m pip --version python -c import sys; print(sys.executable)Linux或macOS下把where换成which就行which python which pip python -m pip --version python -c import sys; print(sys.executable)where python会把PATH里所有叫python的可执行文件列出来排在前面的就是实际生效的。where pip同理。然后关键看python -m pip --version——用当前的python执行pip模块它显示的路径才能真正代表“当前Python解释器对应的pip”。再看sys.executable它告诉你当前这个Python解释器到底住在哪个目录。只要把“启动脚本用的解释器路径”和“pip安装时显示的解释器路径”对比一下问题立刻清楚路径一样说明环境没搞混问题可能在别处路径不一样恭喜你找到根因了。2.3 用python -m pip代替pip我强烈建议从今天开始所有安装操作都写成python -m pip install xxx而不是pip install xxx。这两者有什么区别pip install运行的是pip.exe它是独立的一个入口通过PATH找到不一定和你当前正在用的Python绑定。而python -m pip是明确告诉当前的Python解释器“你把pip模块跑起来”。这个写法天然保证了pip和Python是同一个环境。不信你可以亲自试一下。在命令行分别执行pip --version python -m pip --version很多机器上你会看到两行显示的路径不一样。这就是你踩坑的根源。养成用python -m pip的习惯之后大部分“装完找不到”的问题直接消失。2.4 编辑器里解释器选错的隐蔽坑还有一类特别容易忽略的情况代码明明是在IDE里跑的结果IDE给你选了另一个解释器。VS Code里每个项目可以指定一个Python解释器一般在右下角显示。如果你在终端里手动装了包却忘了VS Code的右下角解释器已经被切换成了别的环境那运行脚本时自然会报ModuleNotFoundError。PyCharm更常见新手同学创建项目时用的“New environment using Virtualenv”装包时却跑到系统终端里去 pip install结果包装了项目虚拟环境里依旧是空的。解决办法很简单确认IDE当前选的解释器然后在IDE自带的终端里安装或者干脆把命令写成python -m pip install lxml这样装包和运行代码就始终是同一个环境了。3. 包确实没装上安装失败的五种真相如果你确认了python和pip属于同一个环境但包还是找不到那就要考虑第二种情况lxml根本没装成功。很多人被pip install结束时那句“Successfully installed”骗了实际上安装过程可能已经悄悄失败或者装上的是一个残废状态。3.1 网络超时与被断的下载最典型的问题是下载依赖时网络超时。命令行里会出现ReadTimeoutError、ConnectionError或者一串Retrying (Retry total4...。有些情况下安装会在下载阶段失败但终端的滚动信息太多你不小心没看到红字只看到最后一句不明所以的提示于是误以为装好了。我见过不少人在公司网络、校园网环境下遇到这个问题。换个网络或者配置国内镜像源通常能解决。对于lxml这种带二进制内容的包下载文件较大网络波动更容易触发超时所以镜像源往往是“一剂见效”。3.2 镜像源配置一劳永逸配置国内PyPI镜像源是合规、安全的操作。我一般推荐清华源或阿里源。临时用一次python -m pip install lxml -i https://pypi.tuna.tsinghua.edu.cn/simple如果想以后所有pip安装都用镜像可以写入全局配置python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple设置完之后再跑python -m pip install lxml默认就会走镜像源速度和稳定性都会提升不少。注意有些单位或公共wifi环境对特定域名有限制如果清华源连不上换阿里源试试python -m pip install lxml -i https://mirrors.aliyun.com/pypi/simple/3.3 缓存的坏包pip会缓存下载过的安装包下次安装同一版本时会直接读缓存不重新下载。大多数时候这是好事但万一缓存里的文件损坏了就会导致反复安装失败而你甚至看不到具体的报错原因。遇到莫名安装失败加一个参数强制不走缓存python -m pip install --no-cache-dir lxml这个参数在某些诡异情况下堪称救命稻草。我自己的经历是有一次怎么装都报校验错误加了--no-cache-dir后一次通过问题就是缓存的wheel文件坏了。3.4 权限不够与root警告Windows上如果Python安装在C:\Program Files这类受限目录普通权限下pip安装可能因为无法写入site-packages而报PermissionError。解决办法是用管理员权限打开命令行窗口再装或者用--user参数装到当前用户目录python -m pip install --user lxmlLinux或服务器上如果直接用root跑pip常常会看到这样一段警示WARNING: Running pip as the root user can result in broken permissions and conflicting behaviour with the system package manager.这个警告的意思是root安装的包会进入全局site-packages系统包管理器并不知情之后升级或卸载可能互相打架。对于服务器环境我更推荐用虚拟环境或者conda环境不要图省事直接root装包。3.5 conda环境下的差异如果你用的是conda情况又不一样。在conda创建的虚拟环境里执行conda install lxml或者python -m pip install lxml两者效果不完全相同。conda安装会从Anaconda仓库下载包通常自带依赖很少需要编译pip安装则会从PyPI下载。重点在于conda和pip像两个管道装的都是同一个环境但它们各自维护一套元数据互相不感知。如果你先pip装了一个包后来conda又在同一环境里装别的包有可能会把环境弄乱。我见过最头疼的场景是conda环境里已经有了一个lxml你再用pip强制覆盖装另一个版本的lxml结果依赖冲突import链路直接崩。遇到这种情况建议先在conda环境里统一用conda管理pip只在conda没有的包时才出手。检查conda环境里装了哪些包conda list万一包确实处于半安装状态还能用python -m pip uninstall lxml python -m pip install lxml彻底重来一遍。4. lxml的特殊身份C扩展包的编译与版本陷阱4.1 为什么lxml和其他包不一样lxml不是纯Python代码包它是libxml2和libxslt这两个C语言库的Python绑定。它的底层是用C写的需要经过编译或者直接下载针对当前平台的预编译文件wheel。纯Python包比如requests安装其实只是把一堆.py文件复制到site-packages。lxml这种C扩展包麻烦得多它需要和Python版本一一对应。用一个数据表格来说会更直观对比项纯Python包如requestsC扩展包如lxml安装动作复制文件复制文件或编译C代码与Python版本关系相对宽松每个Python版本对应不同wheel与操作系统关系基本无关Windows/Linux/macOS各有不同wheel常见安装失败原因网络、权限编译环境缺失、wheel不匹配这就是为什么lxml的ModuleNotFoundError那么常见你可能确实装了但装的wheel版本并不适用于当前Python版本安装过程表面成功导入时依然找不到或导入异常。4.2 编译失败的典型报错在旧版Python或特殊平台上如果pip找不到合适的预编译wheel会退回从源码编译。这时如果机器上缺编译工具就会看到一串天书Windows上最常见的报错是error: Microsoft Visual C 14.0 or greater is required. Get it with Microsoft C Build Tools这意味着你的机器上没有完整安装C编译环境而lxml需要从源码编译。Linux上则通常提示缺libxml2-dev、libxslt-dev、gcc等。很多新手在这里慌掉以为是自己代码问题其实只是编译环境没有准备好。但话说回来现在绝大多数情况下都不该走到这一步。4.3 用什么姿势装lxml最省事我的建议按优先级排序升级Python到有官方wheel的版本。目前Python 3.8到3.12的主流环境lxml都提供了预编译wheelpip可以直接下载不需要编译。如果你用的是Python 3.7以下建议先升级解释器而不是跟编译问题死磕。用conda安装。conda对二进制依赖的管理能力比pip强它能自动安装合适的libxml2、libxslt运行库不会出现“编译链缺失”的窘境conda install -c anaconda lxml锁定版本安装。不是所有版本在所有Python上都有wheel比如某些旧版lxml不支持Python 3.12。如果默认安装失败可以先指定一个已知稳定的版本python -m pip install lxml4.9.4顺便说一句lxml 4.9.4是目前兼容性最广的稳定版从Python 3.7到3.12基本都能找到匹配的wheel。如果你不确定自己该用哪个版本可以直接装这个。4.4 版本不兼容的实际案例我碰到过一个典型的Python 3.12场景用户执行python -m pip install lxml提示安装成功但一运行代码就报No module named lxml。排查了半天最后发现是pip安装时找到的不是最新版wheel而是被缓存里一个旧的lxml 4.9.2替代了而这个版本与Python 3.12存在兼容问题。处理方式倒是简单python -m pip install --no-cache-dir --force-reinstall lxml4.9.4强制重新安装一次问题消失。以后遇到“明明装成功了但导入有问题”不要只怀疑环境也可以考虑版本兼容因素。看看当前装的版本是不是太老python -m pip show lxmlpip show会显示包的版本、安装位置这个信息在排查时非常有用。5. 从lxml到pkg_resources、opencv一套通用排查法5.1 五步排查法ModuleNotFoundError: No module named lxml本质上是个“找不着模块”的问题。只要掌握套路换到任何包上都一样适用。我把自己的排查顺序整理成五步步骤做什么用的命令目的1确认运行代码的解释器python -c import sys; print(sys.executable)明确是谁在跑代码2确认这个解释器对应的site-packagespython -m pip show lxml看包到底装在哪3确认pip与解释器是否同源python -m pip --version排除pip指向别的环境4强制重装目标包python -m pip install --force-reinstall lxml干掉半安装状态5验证导入python -c import lxml; print(lxml.__version__)确认问题已经解决这个流程看着简单但它能覆盖我在前面讲的绝大部分情况。执行完第1步和第3步环境归属问题就已经定位了。真正需要第4步的情况其实不多很多人省掉前面的检查直接重装结果装了一圈发现还是找不到就是因为没有先确认“装进了哪个环境”。5.2 同款报错的三个常见变种lxml只是其中之一。我这些年实际遇到过的同款报错还有这几个No module named pkg_resources。这个包其实是setuptools的一部分一般情况下会随setuptools自动安装。如果你看到它报错大概率是当初为了装某个包卸载setuptools时把pkg_resources也顺手清掉了或者用了非常精简的Python发行版。解决方法是重装setuptoolspython -m pip install --force-reinstall setuptoolsNo module named cv2。前面提过它对应的安装包名是opencv-python。如果你查资料查到pip install opencv-python安装完导入写import cv2没毛病。但如果你误以为要import opencv那报错就很正常了。No module named mmcv。这是计算机视觉领域经常踩的坑。mmcv本身依赖pkg_resources如果你前面把setuptools弄坏了mmcv的导入也会跟着崩。这提醒我们一个问题一个环境的健康状态往往存在连锁反应。遇到这类错优先用pip check检查依赖关系python -m pip check这条命令会把环境里已安装但依赖不满足的包列出来比一台一台手动查高效得多。5.3 顺带排掉的两个兄弟坑这篇文章主要聊ModuleNotFoundError但顺着热词里另一个高频报错也值得一提就是下面这个pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称这个报错跟ModuleNotFoundError完全不同它意味着系统在PATH里根本找不到pip这个命令。通常发生在刚装完Python、没有勾选“Add Python to PATH”的情况下。解决方法是重新安装Python时勾选添加环境变量或者手动把Python的Scripts目录加入到PATH。这属于“pip根本不存在”的问题和“pip装错环境”不是一回事但很多新手会抱着这个报错来查ModuleNotFoundError的解决方案所以放在这里提一句。还有一个容易被忽略的坑是PYTHONPATH环境变量被污染。有些项目文档会让你手动设置PYTHONPATH指向某个第三方库目录设置完之后Python加载模块的顺序会被这个变量影响site-packages里的包反而可能被遮蔽。如果你确认环境归属没问题包也确实装了但就是导入异常那可以看看PYTHONPATH里是不是指向了一个旧环境路径echo $PYTHONPATH在Windows下对应的是echo %PYTHONPATH%一旦发现里面有奇怪的路径先清空再试试。这类“半路出家”的配置问题往往比pip本身更隐蔽。结尾我个人处理这类问题的体会是不要一上来就重装先花两分钟回答一个基本问题——“代码到底是被哪个Python跑起来的”。这个答案找清楚lxml的问题就解决了一半。推荐大家养成两个小习惯所有安装命令都用python -m pip install的写法新项目一定建虚拟环境在虚拟环境里装包、跑代码不要图方便在全局环境里一把梭。环境这东西平时维护得好你基本遇不到今天这堆幺蛾子维护不好你今天遇到的可能只是lxml明天还会有pkg_resources、cv2、mmcv排队来找你。把这套排查思路吃透以后你再看到ModuleNotFoundError时心里就有底气了。

相关新闻

大语言模型评测论文HELM阅读笔记:从评测维度到TaoToken统一API的落地实践

大语言模型评测论文HELM阅读笔记:从评测维度到TaoToken统一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/9 12:59:40 阅读更多 →
进销存系统从用例图到数据库设计:一张图厘清库存与权限边界

进销存系统从用例图到数据库设计:一张图厘清库存与权限边界

简介:这套超市进销存管理系统资源,面向超市运营管理者、信息系统开发学习者及毕业设计人员,提供一套涵盖商品进货、销售管理、库存统计与订单追踪的完整业务方案。资源为RAR压缩包(2.03MB),内含103个文件&a…

2026/10/9 12:59:40 阅读更多 →
马丁EA源码解读:从加仓逻辑到回测实盘避坑指南

马丁EA源码解读:从加仓逻辑到回测实盘避坑指南

简介:一份融合外汇EA策略与MATLAB重建仿真的技术资源。标题指向Amazing5马丁EA,适合量化交易开发者研读马丁格尔策略的加仓与风控逻辑;包内实际以MATLAB的m脚本和mat数据为主,完整呈现基于Tikhonov正则化的超分辨率重建仿真流程&a…

2026/10/9 12:59:40 阅读更多 →

最新新闻

TRCA-SSVEP脑机接口分类:原理、实现与避坑指南

TRCA-SSVEP脑机接口分类:原理、实现与避坑指南

简介:这份资源是面向脑机接口(BCI)研究与学习者的 SSVEP 分类算法实践包,聚焦时间反转分类器(TRCA)在稳态视觉诱发电位解码中的应用,适合具备一定信号处理与机器学习基础、希望复现或改进 SSVEP…

2026/10/9 13:42:33 阅读更多 →
学术文献检索与全文获取的替代方案及长期维护策略

学术文献检索与全文获取的替代方案及长期维护策略

1. 学术资源访问方案的整体设计思路做科研或者写论文的朋友大概都有过这种体验:想查一篇文献,打开常用的学术搜索引擎,结果页面转了半天打不开,或者打开了却搜不出想要的结果。尤其是需要批量查文献、追踪某个领域最新进展的时候&…

2026/10/9 13:42:33 阅读更多 →
轻量化3D可视化:新能源电站数字孪生与运维实战解析

轻量化3D可视化:新能源电站数字孪生与运维实战解析

做新能源电站可视化的人近几年应该都有同感:业主单位对“三维大屏”的期待,已经从“能转两圈的炫酷Demo”,变成了一套必须能辅助生产运行的运维工具。我参与过不少地面光伏与光热电站的数字化交付,最深的体会是,真正能…

2026/10/9 13:42:32 阅读更多 →
VSCode 插件开发实战(十六):详解插件生命周期与 TaoToken 配置实践

VSCode 插件开发实战(十六):详解插件生命周期与 TaoToken 配置实践

/* 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 13:42:32 阅读更多 →
Oracle 11g实例源码实战:环境搭建、SQL*Plus调优与排障指南

Oracle 11g实例源码实战:环境搭建、SQL*Plus调优与排障指南

简介:《Oracle 11g从入门到精通(第二版)》实例源程序,是一套配合书籍使用的完整实操代码包,适合Oracle初学者、备考人员及需要动手巩固数据库技能的开发者。资源对应书中19个章节,围绕数据库基础&#xff0…

2026/10/9 13:42:32 阅读更多 →
欧美个人博客网页模板:从字体排版到部署落地的完整指南

欧美个人博客网页模板:从字体排版到部署落地的完整指南

简介:一款面向独立博主与个人内容创作者的欧美风博客网页模板,整体采用简洁、现代、注重用户体验的设计趋势,无需从零设计即可快速搭建专业且有个人特色的博客站点。资源共26个文件,约853KB,包含HTML页面源码、CSS样式…

2026/10/9 13:41:31 阅读更多 →

日新闻

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 阅读更多 →