Python项目环境搭建全攻略:从requirements.txt到可运行环境
1. 项目概述从依赖文件到可运行环境刚接手一个Python项目看到那个requirements.txt文件你是不是既熟悉又有点无从下手这感觉我太懂了。作为项目交接、代码复现或者团队协作的第一步根据这个文件把环境搭建起来是每个Python开发者都绕不开的“开胃菜”。但就是这么个看似简单的任务里面藏着不少门道。直接pip install -r requirements.txt很多时候这只是个开始甚至可能是个“坑”的开始。这个requirements.txt文件本质上是一个项目依赖的“购物清单”。它记录了项目运行所必需的所有第三方库及其版本。我们的目标就是根据这份清单在一个干净的环境中精准、高效、无冲突地“采购”并安装好所有“食材”让项目这个“大餐”能够顺利“开火”。这个过程远不止是执行一条命令那么简单它涉及到虚拟环境管理、依赖解析、版本冲突处理、以及不同操作系统下的适配等一系列实操细节。接下来我就结合自己踩过的无数个坑把从拿到requirements.txt到成功导入环境的完整流程和核心心法给你掰开揉碎了讲清楚。2. 环境导入前的核心准备与思路解析在动手安装之前花几分钟做好准备工作能避免后面80%的麻烦。盲目执行安装命令很可能导致你的全局Python环境被污染或者陷入版本冲突的泥潭。2.1 虚拟环境隔离是专业的第一课为什么一定要用虚拟环境想象一下你同时在做项目A和项目B。项目A需要Django 2.2而项目B需要最新的Django 4.2。如果你把所有包都安装在全局环境那么后安装的版本会覆盖先安装的导致其中一个项目无法运行。虚拟环境就是为每个项目创建一个独立的“沙箱”里面的Python解释器和第三方库都是项目私有的互不干扰。目前主流的虚拟环境工具有两个venvPython 3.3内置和conda来自Anaconda发行版。对于纯Python项目我强烈推荐使用venv它轻量、无需额外安装且是官方标准。创建虚拟环境的实操命令如下# 进入你的项目根目录 cd /path/to/your/project # 使用 python -m venv 创建名为 .venv 的虚拟环境目录 python -m venv .venv这里有几个关键点环境目录名通常使用.venv或venv。以点开头的目录如.venv在Unix系统下是隐藏的更整洁。这纯粹是个人或团队习惯。Python解释器python -m venv会使用当前命令行中python命令对应的解释器来创建虚拟环境。如果你系统里有多个Python版本如python3.8,python3.10务必先确认你用的是正确的版本。可以用python --version查看。注意在Windows系统上如果直接执行python命令无效可能需要使用py命令或者具体的python3。例如py -3.10 -m venv .venv可以指定使用Python 3.10创建环境。创建完成后你需要激活这个虚拟环境这样后续的所有pip install操作才会被限制在这个“沙箱”内。激活虚拟环境Windows (CMD/PowerShell):# 在CMD中 .venv\Scripts\activate.bat # 在PowerShell中 .venv\Scripts\Activate.ps1执行后命令行提示符前会出现(.venv)字样。macOS / Linux (Bash/Zsh):source .venv/bin/activate同样激活后提示符会变成(.venv) $。激活后你再运行python或pip指的就是虚拟环境里的那一份了与系统全局环境完全隔离。2.2 解读requirements.txt不只是版本号在安装之前先打开requirements.txt文件看看。一个规范的依赖文件可能长这样Django3.2.18 requests2.25.1, 3.0.0 pandas numpy~1.21.0 Flask gunicorn psycopg2-binary -e .这里包含了多种版本指定方式理解它们至关重要3.2.18精确匹配。必须安装这个版本。常用于确保生产环境的绝对一致性。2.25.1, 3.0.0范围匹配。安装2.25.1及以上但低于3.0.0的任何版本。这给了pip一定的灵活性同时避免了破坏性更新的主版本从2.x到3.x。无版本号安装该包的最新稳定版。风险最高因为不同时间安装可能会得到不同版本可能导致项目行为不一致。~1.21.0兼容版本。允许安装1.21.0且1.22.0的版本。即允许修订号和补丁号更新但不允许次版本号更新从1.21到1.22。这是一种在安全性和稳定性间折衷的好方法。-e .可编辑模式安装。这通常意味着当前目录本身就是一个Python包有setup.py或pyproject.toml将其以“开发模式”安装。这样你对本地代码的修改会直接反映在环境中无需重新安装。在安装前你需要思考这个文件是否过时如果项目很久没维护里面某些包的最新版可能已经不再兼容。这时盲目安装最新版可能会出错。有没有明显的版本冲突例如两个包都依赖同一个底层库但指定了互不兼容的版本范围。虽然pip现在有较好的依赖解析能力但复杂情况下仍可能失败。是否需要区分生产环境和开发环境有些项目会有requirements.txt生产环境和requirements-dev.txt开发环境包含测试框架、代码检查工具等。你需要根据目的选择安装哪个。3. 核心安装流程与进阶操作准备工作就绪虚拟环境也已激活现在进入核心安装环节。我们将从最基本的命令开始逐步深入到可能遇到的各种复杂情况及其解决方案。3.1 基础安装与镜像源加速最直接的命令就是pip install -r requirements.txtpip会读取文件中的每一行依次下载并安装指定的包及其依赖项。但是直接运行你可能会遇到第一个坑下载速度极慢甚至超时。因为默认的源https://pypi.org/simple位于国外。解决方法是指定国内的镜像源速度会有质的飞跃。推荐使用清华源或阿里云源进行安装pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn或者pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com参数解释-i: 指定镜像源地址。--trusted-host: 告诉pip这是一个可信的主机否则pip可能会因为SSL证书问题拒绝连接。更一劳永逸的方法是配置pip的全局或用户级镜像源Windows在C:\Users\你的用户名\目录下创建pip文件夹然后在里面创建pip.ini文件内容如下[global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cnmacOS/Linux在用户主目录(~)下创建.pip文件夹如果不存在然后创建pip.conf文件mkdir -p ~/.pip echo -e [global]\nindex-url https://pypi.tuna.tsinghua.edu.cn/simple\ntrusted-host pypi.tuna.tsinghua.edu.cn ~/.pip/pip.conf配置好后以后所有的pip install命令都会默认使用镜像源无需再额外加参数。3.2 依赖解析与冲突解决如果安装过程顺利结束那么恭喜你。但更常见的情况是你会看到红色的错误信息最常见的就是依赖冲突。错误信息可能类似ERROR: Cannot install package-a1.0 and package-b2.0 because these package depend on common-package1.0 and common-package2.0 respectively.这表示package-a要求common-package的1.0版本而package-b要求2.0版本两者无法同时满足。解决依赖冲突的实战步骤升级pip和setuptools首先确保你的包管理工具是最新的它们拥有更强的依赖解析算法。pip install --upgrade pip setuptools尝试让pip自己解决使用--use-deprecatedlegacy-resolver参数对于旧版pip或直接让新版pip尝试更多次新版pip默认使用新的解析器。但更有效的方法是尝试放宽版本限制。手动分析和干预这是最核心的一步。你需要定位冲突的核心。查看错误详情仔细阅读错误日志找到具体是哪两个或哪几个包在哪个共同依赖上产生了冲突。单独安装试探暂时注释掉requirements.txt中你认为可能引起冲突的包特别是那些指定了严格版本的先安装其他包。然后再尝试单独安装被注释的包观察错误。查询包信息使用pip show package-name查看已安装包的依赖信息或者去PyPI页面查看包的元数据。调整requirements.txt根据分析结果你可能需要放宽版本限制将改为或~允许安装一个兼容的、能同时满足其他依赖的版本。寻找替代包如果冲突无法调和可能需要寻找功能类似但依赖不同的替代库。联系原项目维护者如果这是你接手的项目且冲突源于项目本身的依赖声明不合理这或许是一个需要向上游反馈的问题。使用pip-tools进行高级管理对于复杂的项目可以考虑使用pip-tools套件。它包含pip-compile和pip-sync两个命令。pip-compile从一个顶层的requirements.in文件你只写直接依赖生成一个锁定的requirements.txt文件包含所有间接依赖的精确版本确保环境可复现。pip-sync严格根据生成的requirements.txt安装包并卸载环境中所有不在该文件中的包使环境与文件声明完全一致。这是实现“环境即代码”的强力工具。3.3 操作系统与架构特定包的处理有些包尤其是包含C/C扩展的如numpy,pandas,psycopg2,mysqlclient等在安装时需要编译或者需要系统级的依赖库。这在Windows上尤其容易出问题。常见问题及解决方案“Microsoft Visual C 14.0 or greater is required”这是Windows上最经典的错误。你需要安装对应的编译环境。终极解决方案安装Microsoft C Build Tools。访问Visual Studio官网下载“Build Tools for Visual Studio”安装时勾选“C桌面开发”工作负载。便捷替代方案寻找预编译的轮子wheel。许多常用科学计算包在https://www.lfd.uci.edu/~gohlke/pythonlibs/这个非官方站点提供了针对Windows的预编译.whl文件。下载后使用pip install 下载的文件路径.whl进行安装。系统库缺失常见于Linux例如安装psycopg2PostgreSQL驱动需要libpq-dev安装mysqlclient需要libmysqlclient-dev。Ubuntu/Debian先使用系统包管理器安装开发库。sudo apt-get update sudo apt-get install python3-dev libpq-dev libmysqlclient-dev # 根据错误提示安装对应的 -dev 包CentOS/RHELsudo yum install python3-devel postgresql-devel mysql-devel使用二进制包替代很多包提供了不需要编译的“二进制”版本通常以-binary结尾。例如用psycopg2-binary替代psycopg2用mysqlclient的轮子版替代从源码编译。但需要注意二进制版本可能无法完全定制且版本可能稍滞后于源码版。4. 安装后的验证与环境管理安装命令执行完毕且没有报错并不代表环境就100%准备好了。我们需要进行验证并学习如何有效地管理这个环境。4.1 环境验证与依赖树查看首先生成一份当前环境的“快照”并与原requirements.txt进行对比。# 将当前环境中所有已安装的包及其精确版本导出到一个新文件 pip freeze installed.txt # 使用 diff 工具对比原文件和新文件Linux/macOS diff -u requirements.txt installed.txt # 在Windows的PowerShell中可以使用 Compare-Object Compare-Object (Get-Content requirements.txt) (Get-Content installed.txt)对比的目的是检查是否有包因为依赖解析而被安装了不同的版本或者是否有包没有被成功安装。如果requirements.txt中写的是pandas而installed.txt里是pandas1.5.3这是正常的。但如果版本号差异巨大或者缺少了某个包就需要回头检查。其次运行项目的核心入口脚本或测试进行功能验证。# 例如运行一个简单的启动脚本或测试 python manage.py check # Django项目健康检查 pytest tests/ # 运行测试套件 python main.py # 运行主程序如果项目能正常启动并通过基础测试说明环境基本OK。查看依赖树可以帮助你理解包之间的层级关系对于调试冲突非常有用# 使用 pipdeptree 工具需要先安装pip install pipdeptree pipdeptree这个命令会以树状图形式展示所有已安装包及其依赖一目了然地看出哪个顶层包引入了哪个特定版本的子依赖。4.2 环境导出、备份与迁移当你费尽千辛万苦配好一个可用的环境后一定要记得备份。标准的做法就是使用pip freeze。# 导出当前虚拟环境的所有包精确版本 pip freeze requirements_frozen.txt这个requirements_frozen.txt文件才是真正能用于完全复现当前环境的“金标准”。你可以把它提交到版本控制中通常命名为requirements.txt或requirements.lock供其他开发者或部署服务器使用。环境迁移到另一台机器或另一个位置时步骤很简单在新位置创建并激活同名虚拟环境。将requirements_frozen.txt文件复制过去。运行pip install -r requirements_frozen.txt。关于虚拟环境目录本身虚拟环境目录如.venv不应该被加入版本控制如Git。因为它包含二进制文件体积大且与操作系统、Python解释器路径强相关。你只需要在.gitignore文件中添加venv/、.venv/、env/等模式并提交requirements.txt或requirements_frozen.txt即可。4.3 使用pyproject.toml的现代项目越来越多的新项目开始采用pyproject.tomlPEP 518来管理依赖和项目元数据而不是传统的setup.py加requirements.txt。如果你遇到的项目根目录下有pyproject.toml处理方式略有不同。一个典型的pyproject.toml依赖部分如下[build-system] requires [setuptools61.0, wheel] build-backend setuptools.build_meta [project] name my-awesome-project version 0.1.0 dependencies [ Django4.0, requests2.25.0, pandas~1.5.0, ] [project.optional-dependencies] dev [ pytest7.0, black23.0, ]对于这样的项目标准的安装方式是使用pip安装项目本身可编辑模式它会自动处理声明的依赖# 在项目根目录下激活虚拟环境后执行 pip install -e .这条命令会读取pyproject.toml中[project]下的dependencies并安装。如果需要安装开发依赖可以pip install -e .[dev] # 安装项目及开发依赖组同样导出所有依赖的命令也变成了pip freeze requirements.txt # 这仍然有效会导出所有已安装包 # 或者使用 pip-compile (from pip-tools) 来编译 pyproject.toml pip-compile pyproject.toml -o requirements.txt5. 常见问题排查与实战技巧实录即使按照上述流程操作依然可能遇到各种稀奇古怪的问题。下面是我总结的一些高频问题及其排查思路。5.1 典型错误与解决方案速查表错误现象或问题可能原因排查步骤与解决方案ModuleNotFoundError: No module named X1. 包X确实未安装。2. 包安装在了其他Python环境。3. 包名大小写或拼写错误。1.pip list检查是否安装。2. 确认虚拟环境已激活 (which python/where python)。3. 尝试pip install X注意PyPI上的确切包名。ImportError: DLL load failed(Windows)缺少VC运行时库或特定DLL。1. 安装对应版本的 Microsoft Visual C Redistributable 。2. 尝试安装该包的预编译轮子(.whl)。pip安装某个包时长时间卡在Building wheel for X该包需要从源码编译且编译过程缓慢或卡住。1.CtrlC中断。2. 查找该包是否有预编译的轮子 (pip install X --no-binary :all:可以强制从源码装但先试试找轮子)。3. 确保系统已安装必要的编译工具如gcc, make和开发库。安装成功但运行时出现属性或函数错误安装的包版本与项目代码不兼容。1. 检查错误信息看是否提示某个函数在某个版本中不存在。2. 对照原requirements.txt使用pip install 包名指定版本降级或升级到正确版本。同一项目在同事电脑上正常自己电脑上报错1. 操作系统差异。2. Python解释器版本差异。3. 系统级依赖库差异。1. 核对Python主版本号如3.8 vs 3.10。2. 使用pip freeze对比双方精确的包版本。3. 检查是否有操作系统特定的安装指令或依赖。5.2 网络问题与镜像源故障处理即使换了国内源有时也会遇到连接问题或速度慢。“Connection timeout” 或 “Read timed out”网络不稳定或镜像源临时故障。重试简单粗暴有时有效。换源准备2-3个备用镜像源清华、阿里、腾讯云、华为云等。增加超时时间pip install -r requirements.txt --default-timeout100 -i 源地址。“Could not find a version that satisfies the requirement”可能你指定的版本在镜像源中不存在。尝试不指定版本安装或使用pip index versions 包名查看该源上所有可用版本。可能是包名拼写错误。使用代理如果身处内网或特殊网络环境可能需要为pip配置代理。pip install -r requirements.txt --proxy http://your-proxy:port5.3 依赖地狱的终极武器容器化如果你发现一个项目的依赖极其复杂在不同系统上配置痛苦不堪那么可以考虑使用Docker。Docker可以将应用及其所有依赖打包成一个镜像在任何安装了Docker的机器上都能以完全一致的方式运行。如果项目提供了Dockerfile那么环境搭建将简化到极致# 在项目根目录包含Dockerfile下构建镜像 docker build -t my-python-app . # 运行容器 docker run -it --rm my-python-app这种方式彻底屏蔽了宿主机环境的差异是团队协作和持续部署的终极解决方案。即使项目没有提供Dockerfile自己编写一个基于官方Python镜像复制代码并执行pip install -r requirements.txt的Dockerfile也是一项值得投入的技能。整个环境导入的过程从最初的pip install -r requirements.txt到深入虚拟环境、解析依赖冲突、处理系统差异再到最后的验证与容器化考量其实是一个微缩的软件交付流程。把它走通、走顺不仅能让项目跑起来更能加深你对Python项目生态、依赖管理和环境一致性的理解。下次再拿到一个陌生的requirements.txt时你就能气定神闲一步步拆解直到绿色的成功提示出现。

相关新闻

道闸不自动落杆故障排查:四步诊断法详解与实战案例

道闸不自动落杆故障排查:四步诊断法详解与实战案例

1. 项目概述:从一次“抬杠”故障说起 那天下午,我接到物业经理的电话,语气里满是无奈:“张工,咱们小区东门的道闸又‘罢工’了,杆子抬起来就不下去了,后面堵了好几辆车,喇叭按得震天…

2026/10/19 12:09:53 阅读更多 →
CentOS 7永久静态路由配置全解析:从原理到实战排错

CentOS 7永久静态路由配置全解析:从原理到实战排错

1. 项目概述:为什么我们需要永久静态路由? 在CentOS 7的运维和网络管理中,配置静态路由是一项基础但至关重要的技能。想象一下,你的服务器就像一栋大楼,而数据包就是需要派送到不同楼层的快递。系统自带的动态路由协议…

2026/10/18 1:07:11 阅读更多 →
WSL2+宝塔面板:在Windows上搭建高效Linux服务器开发环境

WSL2+宝塔面板:在Windows上搭建高效Linux服务器开发环境

1. 项目概述:为什么要在Windows上折腾WSL和宝塔? 如果你是一个长期在Windows环境下工作,但又时不时需要接触Linux服务器环境的开发者、运维或者学生,那你肯定对“环境切换”这件事深恶痛绝。开个虚拟机吧,资源占用大&a…

2026/10/18 4:14:55 阅读更多 →

最新新闻

具身智能认知架构:从脑到本体的神经符号融合与工程落地

具身智能认知架构:从脑到本体的神经符号融合与工程落地

1. 具身智能认知架构到底在解决什么问题1.1 从一个尴尬的现状说起做了几年机器人相关项目的人大概都有这种体会:机械臂在结构化环境里跑得挺稳,抓取、码垛、拧螺丝这些任务,只要场景不变、光照不变、物体位置固定,成功率能到99%以…

2026/10/19 22:24:16 阅读更多 →
5个AI工具让创业者效率翻倍:会议纪要、内容生成、数据解读、客户跟进、流程自动化

5个AI工具让创业者效率翻倍:会议纪要、内容生成、数据解读、客户跟进、流程自动化

如果只给自己留一个判断标准来选AI工具,我会选这一个:它能不能把一个星期里重复十几次的机械动作,压缩成一次性的规则和提示词。创业者最值钱的不是执行力,而是判断力和决策质量,但现实是,大部分人的精力都…

2026/10/19 22:23:15 阅读更多 →
Atlas数据库迁移实战:声明式与版本化工作流解析

Atlas数据库迁移实战:声明式与版本化工作流解析

1. Atlas是什么:一个让数据库变更不再“失控”的迁移工具1.1 先说我遇到的一个真实迁移事故如果你维护过几年数据库,大概率见过这种场景:测试环境和生产环境的表结构悄悄对不上了,问了一圈没人知道谁动过,git记录里也查…

2026/10/19 22:23:15 阅读更多 →
AI写作工具合规使用指南:提升效率与规避学术不端风险

AI写作工具合规使用指南:提升效率与规避学术不端风险

抱歉,这个任务我没法执行。你提供的标题涉及一类明确有合规风险的工具——“降AIGC工具”,加上“导师推荐”“千笔AI VS Checkjie”“本科生专属”等表述,语义上指向帮助学生规避抄袭检测或AI检测的灰色服务。这类内容属于学术不端范畴&#…

2026/10/19 22:21:05 阅读更多 →
嵌入式Linux摄像头应用实战:i.MX6ULL+OV5640+V4L2+QT

嵌入式Linux摄像头应用实战:i.MX6ULL+OV5640+V4L2+QT

做嵌入式Linux下的摄像头应用,我踩过的坑多数不在应用层。刚开始拿一块基于i.MX6ULL的板子,接上OV5640摄像头模组,想着跑一个QT相机界面,以为难点在UI布局,结果光是让画面稳定流畅地出现在屏幕上,就把从驱动…

2026/10/19 22:16:59 阅读更多 →
从控件到像素:移动端AI Agent操作真机的三大考点

从控件到像素:移动端AI Agent操作真机的三大考点

最近很多团队开始做一件事:把 AI Agent 接到一台真实的手机上,让它像人一样打开 App、点按钮、填信息、下单、发消息。不是模拟器,不是纯接口调用,是实实在在握住一台手机操作。这件事在近两年突然火起来,原因很直接—…

2026/10/19 22:16:59 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54: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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →