Python虚拟环境与PyCharm调试全攻略:从venv到pip避坑指南
我先说个反直觉的事很多人把 Python 装好、PyCharm 装好之后第一反应是“赶紧写代码跑起来”结果没过多久就被环境问题折腾得想砸电脑——明明在自己电脑上跑得好好的程序换台机器就报 ModuleNotFoundError在项目 A 里装了个第三方库回头项目 B 的代码也跟着“莫名其妙”坏了更离谱的是有时候pip install提示权限不足有时候又提示“externally-managed-environment”网上搜一圈全是似懂非懂的答案。这些问题的根源基本都围绕一个概念Python 虚拟环境与真实环境全局环境之间的边界没搞清楚。再加上 PIP、PyCharm 里的虚拟环境配置、调试功能这些“工具链知识”没人系统讲透新手就会一直在“装库、报错、重装”的循环里打转。这篇文章我直接按自己的实操经验把虚拟环境的理解、Pip 工具的使用、PyCharm 中虚拟环境的使用、PyCharm 的调试功能这四块一次讲透适合刚入门 Python、或者已经被环境问题坑过几次的同学参考。我不会讲太玄的理论全部都是能立刻上手验证的做法和踩坑记录。1. 先搞懂“真实环境”为什么会成为灾难源头1.1 全局环境的工作方式大家都挤一间房我们最初安装 Python 时系统会创建一个全局环境。在 Windows 上你打开命令行敲python进入的就是这个环境在 macOS/Linux 上类似。这就像一间大宿舍所有项目共用一套 Python 解释器和一套第三方库目录site-packages。你在全局环境里敲pip install requests会把 requests 装进这间大宿舍。项目 A 要用requests2.30项目 B 要用requests2.25如果直接在全局环境里操作A 和 B 永远没法同时满足——你只能二选一。更麻烦的是系统里有些工具可能依赖某个特定版本的库你为了项目升级了这个库结果系统工具直接罢工。一开始这个矛盾不明显因为你的项目少装的库也少。一旦项目多起来全局环境的混乱程度会指数级上升。我见过有人一台机器上全局环境里有 400 多个包自己都说不清哪些是项目需要的哪些是当年测试时随手装的。这种状态下别说换机器部署连自己维护都吃力。1.2 “真实环境”这个叫法其实暗示了一个误区很多人把全局环境叫“真实环境”潜意识里觉得“虚拟环境是假的、不靠谱”。实际上恰恰相反虚拟环境才是日常开发中最值得依赖的“隔离沙箱”全局环境更多是充当基底角色。一个虚拟环境本质上就是一个独立的目录里面包含一份 Python 解释器通常是快捷方式或拷贝Windows 下可以简单理解为指向同一个解释器的入口一份独立的 site-packages用来安装属于这个环境的第三方库一套环境激活脚本让终端里的python、pip命令自动指向这个隔离环境。所以“虚拟”不是“虚假”而是“独立副本”。它和全局环境的关系类似每个项目拥有自己的独立办公室而不是所有人挤在大通间里办公。每个项目装什么、升级什么、甚至删掉什么都只影响自己不会波及别的项目。1.3 官方推荐的 venv 是怎么工作的Python 自带的venv模块是最轻量、最不容易出错的虚拟环境方案不需要额外安装。创建方式就是一句话python -m venv myenv这会在当前目录下生成一个myenv文件夹。Windows 下它的目录结构大概长这样myenv/ ├── Scripts/ │ ├── activate.bat │ ├── Activate.ps1 │ ├── python.exe │ └── pip.exe ├── Lib/ │ └── site-packages/ └── pyvenv.cfgpyvenv.cfg文件记录了这个虚拟环境关联的全局 Python 路径。这就是为什么虚拟环境创建后即使你后面把全局 Python 升级了这个虚拟环境也能保持相对独立——它内部的解释器入口和原全局解释器的关联方式由这个配置文件决定。激活环境的操作很简单Windows CMDmyenv\Scripts\activate.batPowerShellmyenv\Scripts\Activate.ps1macOS / Linuxsource myenv/bin/activate激活之后命令行提示符前面会出现(myenv)字样。这时你再敲python或pip用的就是虚拟环境里的解释器和包管理工具而不是全局环境。提示网上很多教程让你激活环境其实在 PyCharm 这类 IDE 里你通常不需要手动激活IDE 创建项目时选好解释器后会自动帮你完成“逻辑上的激活”。后面我会细说。2. Pip 工具使用中的常见坑和正确打开方式2.1 搞清楚你敲的 pip 到底属于谁新手最常见的困惑是为什么有时候pip install的包在 PyCharm 里 import 不到很可能是因为你敲pip命令时用的是全局环境的 pip而 PyCharm 项目用的是虚拟环境。判断当前pip指向谁用这个命令pip -V它会输出类似这样的信息pip 23.2.1 from C:\Users\lenovo\myenv\Lib\site-packages\pip (python 3.11)注意看路径路径里包含myenv就说明当前在虚拟环境里如果路径是C:\Users\lenovo\AppData\Local\Programs\Python\Python311\Lib\site-packages说明是全局环境。还有一种情况很多人装 Python 之后会遇到这个提示Defaulting to user installation because normal site-packages is not writeable这是说当前用户对全局 site-packages 没有写权限pip 自动把包装到了用户目录下的 site-packages。这本身能解决权限问题但会让环境变得更难追踪——你以为自己装进了某处实际被分散到了好几个地方。所以如果你发现全局环境总是需要“用户安装”最好的做法不是硬刚权限而是改用虚拟环境把包装到项目专属目录里。2.2 镜像源装不上包时第一件事很多包下载慢或者直接超时原因很简单——连默认的 PyPI 源不稳定。解决办法是配置国内镜像源我比较常用的是清华的源pip install 包名 -i https://pypi.tuna.tsinghua.edu.cn/simple如果不想每次手动敲可以全局配置。在用户目录下找一个pip文件夹没有就创建里面建pip.iniWindows或pip.confmacOS/Linux写入[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple [install] trusted-host pypi.tuna.tsinghua.edu.cn配置好之后再执行pip install就默认走镜像源了。镜像源不是 Python 独有的概念很多语言包管理器都有类似机制养成习惯能省很多等待时间。除了清华源还有阿里云、腾讯云等镜像源都可以试。我个人建议在项目里固定一个源不要今天用这个明天用那个否则遇到奇怪的缓存问题不好排查。2.3 版本控制pip install 的进阶用法pip install 包名是最基本的但实际项目里我更推荐指定版本范围避免某些库的“激进升级”带来兼容性问题。几个常用写法# 安装最新版 pip install requests # 安装指定版本 pip install requests2.30.0 # 安装一个允许的版本区间 pip install requests2.25,2.31 # 升级已安装的包 pip install --upgrade requests # 卸载包 pip uninstall requests另外一个高频需求是把当前环境的所有依赖导出成一个清单文件方便换机器复现pip freeze requirements.txt换机器之后pip install -r requirements.txt这里有个细节pip freeze输出的内容可能包含一些通过其他方式安装的、和当前项目无关的包。如果想更干净地管理依赖可以用pipreqs之类的工具扫描项目实际 import 了哪些第三方库再生成清单。不过对于多数项目pip freeze已经够用。2.4 新版 pip 遇到“externally-managed-environment”怎么办不少人在装包时遇到过这个报错error: externally-managed-environment This environment is externally managed翻译一下就是当前 Python 环境被系统级包管理器比如 apt、homebrew接管了pip 不允许直接往这个环境里装包以免破坏系统。这在 Linux 发行版和通过系统包管理器安装的 Python 上尤其常见。这个报错本身不是坏事它在提醒你别往全局环境里乱装东西建个虚拟环境吧。解决方式就是在项目目录里先创建并激活虚拟环境然后在虚拟环境里正常pip install。如果你确实需要在系统级环境安装并且知道自己在做什么可以加参数绕过但我不建议普通用户这么干。绕过限制装错版本后续系统级 Python 工具出问题排查成本很高。3. PyCharm 中虚拟环境的正确配置与使用3.1 创建新项目时如何选择虚拟环境PyCharm 在新建项目时会让你选择解释器类型。通常有三个选项Virtualenv虚拟环境推荐PyCharm 内部帮你创建一份独立环境Conda如果你已经用 Anaconda 管理 Python 环境可以选这个System Interpreter系统解释器直接使用全局环境一般不建议长期依赖。我强烈建议除非你明确知道自己要干什么否则都选Virtualenv然后设置好虚拟环境目录。PyCharm 默认的虚拟环境名是venv放在项目根目录下这个默认值就挺好。很多新人会在这里困惑为什么 PyCharm 创建项目时还要“下载”或者“等待”其实它是在执行python -m venv venv创建虚拟环境、初始化目录结构。如果创建很慢多半是全局 Python 路径配置有问题或杀毒软件在扫描文件。3.2 打开已有项目时的解释器设置如果项目是从别人那里拷来的或你之前用了全局环境现在想切到虚拟环境可以在 PyCharm 的设置里改File - Settings - Project: 项目名 - Python InterpretermacOS 是PyCharm - Preferences点击右侧齿轮图标选择Add Interpreter在弹窗里选Virtualenv Environment - Existing然后找到项目目录下的虚拟环境 Python 文件Windows 下选择venv\Scripts\python.exemacOS/Linux 选择venv/bin/python。改完之后PyCharm 底部右侧会显示当前解释器路径PyCharm 的终端也会自动激活这个虚拟环境。这里有个非常容易踩的坑如果你在 PyCharm 之外单独用系统终端pip install装了包然后回到 PyCharm 里 import 还是报错不要慌先看 PyCharm 终端里命令提示符前面有没有(venv)字样。如果没有说明你的包装到了别的环境不是 PyCharm 的问题。3.3 项目解释器和 PyCharm 的“同步迷失”另一个常见现象在 PyCharm 里装了包比如pandas但把项目拷走或在别的目录打开时import 又报错。原因很简单——虚拟环境没有被一起拷贝。虚拟环境目录通常只包含软链接和大量小文件不同机器、不同 Python 版本之间复制很容易出问题。把venv文件夹放进 Git 仓库完全是灾难级的操作。正确做法是只提交requirements.txt让新机器通过pip install -r requirements.txt重建环境。这就是我前面强调pip freeze的原因。如果遇到环境打不开、想重建虚拟环境最简单的方式是直接删掉项目目录下的venv文件夹然后在 PyCharm 里重新创建解释器。干净利落不会残留任何“半活跃”状态。提示PyCharm 在创建虚拟环境时如果你已经装了 Anaconda它可能会默认使用 conda 的 Python 作为基底。这个不影响使用但会导致虚拟环境里能看到一些 Anaconda 自带的包有时候感觉“灵异”其实不是灵异是继承和 base package 的叠加。3.4 Terminal 里看到的“自动激活”是怎么回事在 PyCharm 中打开终端Terminal 窗口你会发现命令行提示符自带(venv)这让你以为“PyCharm 的环境会自动换到虚拟环境”。其实是因为 PyCharm 给 Terminal 设置了一个启动时的激活脚本它会把你设置的解释器所对应的虚拟环境给 activate。如果哪天发现 PyCharm 的终端没有自动激活了通常是因为虚拟环境被手动删除了Python 解释器路径被改动项目配置文件和虚拟环境不匹配。这时在 PyCharm 右下角查看解释器状态重新选择解释器即可。PyCharm 的“Project Interpreter”和终端激活之间的联动本质上就是把虚拟环境激活命令嵌进了 shell 初始化过程不要觉得有什么黑魔法。4. 用好 PyCharm 的调试功能比打 print 高效十倍4.1 Debug 工具和虚拟环境配置的关联调试功能看起来和虚拟环境没关系但实际调试时经常出现的问题是“我明明在调试为什么 import 报错”原因是调试器用的解释器不是虚拟环境里的解释器而是全局环境的。PyCharm 的 Debug 模式默认会使用你在Settings - Project Interpreter里指定的解释器。如果你这里设置的是全局环境调试时加载的也是全局库列表和虚拟环境无关。所以想让调试功能正常先去检查解释器设置是否指向虚拟环境。我见过太多人调试没反应、变量区为空最后发现是解释器配错了。4.2 断点的不同类型和使用场景新手通常只用行断点点击代码行号右侧的灰色区域出现红点运行到这一行就停下来。这是一个好的开始但调试远不止这一步。条件断点是我日常排查里用得最多的功能。右键点击断点可以设置条件表达式。比如循环里跑了 10000 次你只想在第 5000 次时停下来观察就可以设i 5000。这样不用一直按“继续”按钮省很多时间。PyCharm 还支持异常断点和函数断点。它可以在异常发生时自动停下来而不需要你猜测异常可能出现在哪一行。设置路径Run - View Breakpoints勾选要捕获的异常类型。调试时如果某个库内部抛了异常PyCharm 会直接把你带到抛出点配合调用栈几秒钟就能定位问题。4.3 调试窗口的常用按钮到底是干什么的很多人打开 Debug 面板后一脸懵其实核心按钮就几个Step Over跳过当前行如果当前行是个函数调用不会进入函数内部直接执行这一行并停在下一行。适合想跳过短逻辑、只关注当前流程时使用Step Into进入函数内部进入当前行调用的函数内部一行一行地看函数体怎么执行。排查库内部行为时很有用Step Out跳出当前函数如果进入函数后发现不是想找的地方直接执行完整个函数回到调用处Resume Program继续运行从当前断点继续执行直到下一个断点或程序结束。新手最常犯的错误是看到函数就想“Step Into”结果陷入site-packages里的内置实现绕半天才出来。正确的做法是先在代码里确认这个函数是不是自己写的如果是第三方库的函数通常不要进入内部而是看它返回什么。用 Step Over 跳过即可。4.4 Watches、Variables 和 Debug Console 的实际用法右侧的Variables面板会实时显示当前作用域内的变量。很多人只看这里但真正深入排查时需要的是Watches监视面板——可以写表达式比如len(foo)、user.name.upper()调试时实时看你关心的值。Debug Console是更高级的存在。它可以在程序停在断点时直接在控制台输入代码执行任意表达式。比如程序跑到一半你想临时看看一个变量被修改后的模拟结果可以直接在 Console 里敲a data[0] print(a)这个操作不会影响正在运行的程序本身但可以帮你快速验证假设。我调试 pandas 数据清洗时经常在 Debug Console 里试验groupby和apply的组合确认有效后再写回代码。4.5 一个完整的排错例子越界异常排查举个我实际遇到过的例子有一段代码在处理用户上传的 CSV 时偶尔崩报IndexError: list index out of range。问题在于 CSV 有时缺列、有时多列。这时我不是靠 print 猜而是按以下步骤做在读写 CSV 的那一行打条件断点比如len(row) expected_len运行调试模式程序停在异常数据附近在Variables面板看row里到底有哪些元素在Debug Console里手动访问row[10]确认越界点修复代码再跑一次条件断点不再触发。整个过程不超过十分钟。硬要 print 慢慢试可能半小时都定位不了问题而且改来改去会把代码弄乱。注意调试时如果发现代码没有停在断点上先检查红点是否被打进了实际运行的那份代码比如多进程、多线程子进程断点可能打在父进程。PyCharm 有“断点归属进程”的概念调试多进程项目时要在断点设置里选择“All threads”或指定进程。5. 个人实操中养成的小习惯和最后的几个建议先说一个小习惯每次新建 Python 项目我第一件事就是确认虚拟环境和解释器对上了然后从requirements.txt开始搭建依赖。这不是形式主义而是防止“项目写着写着环境烂了”的保命手段。再说环境迁移。有时候你需要把一个项目从一台电脑搬到另一台不要手动去拷venv文件夹效率低、容易坏。正确姿势是在原机器上pip freeze requirements.txt把项目源码和requirements.txt打包新机器上创建虚拟环境激活后pip install -r requirements.txt。如果装了某些本地编译的包比如pygame、numpy在某些平台上有特殊依赖可能会花点时间但比复制坏掉的环境要可靠得多。还有一点是关于 pip 缓存。pip install默认会缓存下载的包有时候缓存损坏会导致装包失败报一些莫名其妙的错误。遇到装包失败先执行pip cache purge清一下缓存再重新安装试试。十次里有三四次能直接解决。最后再分享一个和 PyCharm 调试相关的小技巧如果程序是长期运行的服务型脚本不方便一步步断点调试可以在关键位置加logging输出到文件然后在 PyCharm 的“Console”里观察输出。调试功能不是万能的但它和日志配合使用能让你很快定位问题所在。虚拟环境也好、pip 也罢理解它们之间的边界再配合 IDE 的调试能力Python 项目的环境问题就没什么好怕的了。

相关新闻

REA模型实战:用资源、事件、代理搞定业务建模与对账

REA模型实战:用资源、事件、代理搞定业务建模与对账

做业务系统这些年,跟“账对不上”和“业务规则散落各处”这两件事,真的缠斗了很久。手里的项目标题是“rea”,我先说明白,这不是某个新框架的名字缩写,而是我在复盘某订单中台时反复用到的 REA 模型——资源、事件、代…

2026/10/10 21:00:45 阅读更多 →
Mac Sai 测试策略揭秘:862 个测试与「Sandboxed Logic」设计模式,让安全关键代码可 100% 测试

Mac Sai 测试策略揭秘:862 个测试与「Sandboxed Logic」设计模式,让安全关键代码可 100% 测试

【免费下载链接】MacSai Mac Sai: the open-source Mac cleaner, optimizer, and malware scanner. A free, Apple-notarized alternative to CleanMyMac, built with Swift 6 and SwiftUI. 项目地址: https://gitcode.com/gh_mirrors/mac/MacSai 点击查看 免费下载…

2026/10/10 21:00:45 阅读更多 →
信创测试异常场景设计:故障注入与自动化回归实践

信创测试异常场景设计:故障注入与自动化回归实践

做信创测试这几年,最让我意外的从来不是功能跑不通,而是那些只有在异常场景下才冒头的诡异故障。某次适配测试,业务程序在x86环境里连续跑48小时都没事,迁到国产操作系统的ARM服务器后,只要模拟一次突然断电再重启&…

2026/10/10 20:59:44 阅读更多 →

最新新闻

impeccable:一款面向OpenAPI契约的Python自动化校验工具

impeccable:一款面向OpenAPI契约的Python自动化校验工具

我无法基于当前输入生成符合要求的博文。原因如下:输入中仅提供了项目标题"impeccable",以及空置的“相关热搜词”“最新网络热词”和完全空白的搜索内容块(),未提供任何实质性的项目正文、关键词列表或摘要…

2026/10/10 21:47:36 阅读更多 →
X射线底片焊缝缺陷检测:2647张6类标注数据集,可直接喂给YOLO

X射线底片焊缝缺陷检测:2647张6类标注数据集,可直接喂给YOLO

简介:面向工业X射线底片焊缝缺陷检测的目标检测数据集,涵盖裂纹、未熔合、未渗透等6类焊缝缺陷,共2647张底片图像、4766个真实标注框,适合用于YOLO、Faster R-CNN等目标检测模型的训练与评测。数据采用VOC与YOLO双格式存储&#x…

2026/10/10 21:47:36 阅读更多 →
AI辅助软件测试实战:从脚本生成到日志分析的全流程经验

AI辅助软件测试实战:从脚本生成到日志分析的全流程经验

软件测试这行的工具形态,这几年变化比我入行前十年加起来都大。以前同行碰头聊提效,无非是自动化框架怎么搭、脚本怎么写更稳、CI怎么接;现在问得最多的变成了"你平时用哪个AI工具""Prompt怎么写的""AI生成的脚本你…

2026/10/10 21:47:36 阅读更多 →
开源AI测试工具落地指南:从接口自动化到自愈定位器的实践选型

开源AI测试工具落地指南:从接口自动化到自愈定位器的实践选型

软件测试这个岗位,这两年的变化比过去十年加起来都大。我记得年初帮一个测试组做评审,同事把一份AI生成的接口用例贴出来,从覆盖路径到断言写法看着都像模像样,但一跑就发现大量断言是“凭空捏造”的——它把响应里根本不存在的字…

2026/10/10 21:47:36 阅读更多 →
Inno Setup自定义安装界面:ILSpy反编译+WinForms回调实践

Inno Setup自定义安装界面:ILSpy反编译+WinForms回调实践

简介:一套面向.NET应用开发者的Inno Setup自定义安装界面资源,用于解决安装包界面模板固化、动态配置繁琐的问题。资源基于Inno Setup增强版封装,内置对.NET Framework 4的依赖支持,并将界面逻辑集中在Code.iss脚本中,…

2026/10/10 21:47:36 阅读更多 →
【Claude Code】BMad-Method 多智能体协作实战:PRD 与架构文档一键生成,TaoToken 统一 Key 接入

【Claude Code】BMad-Method 多智能体协作实战:PRD 与架构文档一键生成,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/10 21:46:35 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

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/10 11:14:25 阅读更多 →
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/10 1:36:08 阅读更多 →
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/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →