Linux系统下Python安装全攻略:从系统Python到pyenv多版本管理
1. 为什么在Linux上安装Python值得专门聊聊如果你刚接触Linux或者从Windows/macOS转过来可能会觉得“安装Python”不就是点几下鼠标、运行个安装包的事儿吗在Linux上这事儿还真有点不一样。它不像在Windows上去官网下载一个.exe文件一路“下一步”就能搞定。Linux的哲学是“一切皆文件”软件管理高度依赖包管理器Package Manager和系统仓库。这种差异让在Linux上安装Python从一个简单的“安装”动作变成了一个涉及“选择版本”、“管理依赖”、“理解系统集成”的综合性操作。我见过不少新手直接在搜索引擎里输入“Linux 安装 Python”然后照着某个教程的sudo apt-get install python3命令执行以为就万事大吉了。结果后面想用pip装个requests库发现报错或者想运行一个需要Python 3.9的脚本但系统自带的只有3.8。问题就出在他们没有理解Linux下Python环境的“生态位”。Linux发行版如Ubuntu、CentOS为了系统的稳定性其官方仓库里的Python版本往往是某个较旧的、经过充分测试的版本。这个“系统Python”承担着运行大量系统工具和脚本的重任随意升级或改动它可能会导致你的桌面环境甚至部分系统功能出问题。所以我们今天聊的“Linux系统下Python的下载与安装”核心目标不仅仅是让Python解释器能跑起来而是要建立一个清晰、可控、可维护的Python工作环境。这意味着你需要知道什么时候用系统自带的Python什么时候需要安装另一个独立版本如何安全地安装和管理多个Python版本如何为你的项目创建独立的虚拟环境这些问题的答案远比单纯执行一条安装命令重要得多。这也是为什么这个话题常搜常新因为随着Python版本的迭代和开发工作流的演进最佳实践也在不断更新。2. 安装前的核心决策系统Python vs 独立Python动手之前先花几分钟搞清楚你的需求这能避免后面80%的混乱。这个决策的核心在于你打算用Python来做什么2.1 系统Python稳定压倒一切几乎所有的现代Linux发行版都预装了Python 3。你可以打开终端输入python3 --version来查看。这个预装的Python我们称之为“系统Python”。它的特点是版本较旧例如Ubuntu 22.04 LTS预装的是Python 3.10.12而最新的稳定版可能已经是3.12。这是发行版为了确保所有系统组件兼容性而做的保守选择。位置特殊它的解释器通常位于/usr/bin/python3相关的包安装目录是/usr/lib/python3/dist-packages/。权限要求高向系统Python安装第三方包用pip通常需要sudo权限因为这会影响所有用户和系统服务。风险较高如果你不小心用pip升级了某个系统Python包或者安装了有冲突的版本可能导致依赖该Python包的系统工具如软件中心apt、桌面环境组件崩溃。使用场景运行系统自带的、用Python写的脚本或工具。执行一些简单的、一次性的、不依赖特定第三方库版本的任务。新手入门快速验证Python环境是否可用。注意强烈建议不要使用sudo pip install来为系统Python安装项目所需的第三方库。这是破坏系统稳定性的最常见操作之一。2.2 独立Python为开发而生当你需要进行Python开发时无论是学习、数据分析、Web开发还是自动化脚本都应该使用一个独立于系统Python的安装。为什么要独立安装版本自由你的项目可能需要Python 3.9、3.11等特定版本不受系统仓库版本的限制。环境隔离通过虚拟环境venv,conda可以为每个项目创建独立的包依赖空间避免项目间的库版本冲突。这是现代Python开发的基石。安全无污染所有的包安装、升级、卸载都发生在你的用户目录下无需sudo权限完全不会影响系统运行。管理便捷可以使用pyenv这样的工具像开关一样轻松地在多个Python版本间切换。主流独立安装方案对比方案核心工具优点缺点适用场景包管理器安装apt(Debian/Ubuntu),yum/dnf(RHEL/CentOS/Fedora),pacman(Arch)安装最简单自动处理依赖与系统集成好。版本受仓库限制通常不是最新。多个版本管理较麻烦。需要快速获得一个稳定、通用的Python环境且对版本要求不苛刻。源码编译安装从 python.org 下载源码configure,make,make install能安装任意版本可深度定制编译选项如优化、路径。步骤繁琐需自行解决依赖如libssl-dev,zlib1g-dev容易出错。对Python版本、性能或安装路径有特殊要求的进阶用户。第三方工具管理pyenv强烈推荐。可安装管理多个Python版本切换自如纯用户空间操作不干扰系统。需要额外安装pyenv本身及其依赖如编译工具链。绝大多数开发场景的首选。适合需要同时维护多个项目、对应不同Python版本的开发者。发行版独立包deadsnakes PPA(Ubuntu),Software Collections(RHEL)相对包管理器能提供较新的版本相对源码编译更简单。需要添加第三方仓库有一定信任和安全考量。在特定发行版上希望以包管理的方式获得较新版本。对于绝大多数开发者我的建议是直接使用pyenv。它完美解决了版本管理和环境隔离的痛点是当前社区公认的最佳实践。接下来我们就以pyenv为主线结合其他方法详细走一遍安装流程。3. 实战通过pyenv安装与管理多版本Pythonpyenv的工作原理是在你的用户目录如~/.pyenv下维护多个独立的Python版本并通过修改shell的PATH环境变量来指向当前激活的版本。它本身不依赖系统Python非常干净。3.1 安装pyenv及其依赖首先我们需要安装pyenv的编译依赖。因为pyenv安装Python本质上是下载源码并编译所以需要编译器、头文件等工具。在Ubuntu/Debian系系统上sudo apt update sudo apt install -y make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev这一长串包包含了编译Python所需的核心库如zlib,ssl,sqlite3,readline以及编译工具链。在RHEL/CentOS/Fedora系系统上sudo yum groupinstall -y Development Tools sudo yum install -y zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \ openssl-devel xz xz-devel libffi-devel在macOS上虽然主题是Linux但供参考通常使用Homebrewbrew install openssl readline sqlite3 xz zlib tcl-tk。接下来安装pyenv本身。推荐使用自动安装脚本它会克隆pyenv的Git仓库到~/.pyenv并自动配置shell环境。curl https://pyenv.run | bash这个命令会下载并运行pyenv官方的安装脚本。安装完成后脚本会提示你需要将几行配置添加到你的shell配置文件如~/.bashrc,~/.zshrc中。通常你需要添加的内容类似这样export PATH$HOME/.pyenv/bin:$PATH eval $(pyenv init --path) eval $(pyenv virtualenv-init -) # 如果你也需要pyenv的虚拟环境插件将上述行添加到你的~/.bashrc如果你用Bash或~/.zshrc如果你用Zsh文件的末尾。然后执行source ~/.bashrc或source ~/.zshrc让配置立即生效或者直接新开一个终端窗口。验证安装pyenv --version。如果显示版本号说明安装成功。3.2 使用pyenv安装特定Python版本现在你可以查看所有可安装的Python版本pyenv install --list这个列表非常长包含了从古老的2.x到最新的开发版。我们通常选择稳定的版本例如3.10.13,3.11.9,3.12.3等。假设我们要安装Python 3.11.9pyenv install 3.11.9这个过程会从Python官网下载源码进行编译安装。根据网络和机器性能可能需要几分钟到十几分钟。你会看到大量的编译输出信息。常见问题与解决下载慢pyenv的下载源在国外可能会很慢或失败。可以设置国内镜像加速。在运行pyenv install之前先执行v3.11.9|wget https://registry.npmmirror.com/-/binary/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/这会将源码包下载到pyenv的缓存目录。然后再次运行pyenv install 3.11.9它会发现缓存文件并直接使用。编译失败最常见的原因是第一步的依赖没有装全。请仔细核对上面的依赖安装命令确保所有包都已成功安装。错误信息通常会提示缺少哪个-dev或-devel包。安装完成后查看已安装的版本pyenv versions你会看到类似输出* system (set by /home/yourname/.pyenv/version) 3.11.9星号*表示当前全局激活的版本是system即系统自带的Python。3.3 版本切换与全局/本地设置pyenv提供了三个层级的版本控制全局global设置一个默认的Python版本对所有shell会话生效。pyenv global 3.11.9执行后在任何地方输入python --version和python3 --version都应该显示3.11.9。pyenv通过一个位于~/.pyenv/version的文件来记录这个全局设置。本地local为当前目录及其所有子目录设置一个特定的Python版本。这通过在当前目录创建一个.python-version文件实现。mkdir myproject cd myproject pyenv local 3.11.9这样只要你进入myproject目录pyenv会自动将Python版本切换到3.11.9退出目录后则恢复为全局设置。这是为不同项目指定不同Python版本的利器。Shellshell仅为当前这个shell会话临时设置一个Python版本。关闭终端或新开窗口即失效。pyenv shell 3.11.9你可以随时使用pyenv versions命令查看所有已安装版本和当前激活版本前面带*的。4. 构建项目专属环境虚拟环境Virtual Environment的必须性安装了特定版本的Python解释器只是第一步。真正的“环境隔离”要靠虚拟环境。想象一下项目A需要Django 4.2项目B需要Django 3.2如果你把所有包都装在用户目录下必然会产生冲突。虚拟环境就是为每个项目创建一个独立的“沙盒”里面有独立的Python解释器或链接和独立的site-packages目录存放第三方包。4.1 创建与激活虚拟环境从Python 3.3开始标准库就内置了创建虚拟环境的模块venv。假设我们已经在项目目录myproject下并且通过pyenv local设置了正确的Python版本。创建虚拟环境# 语法python -m venv /path/to/venv python -m venv .venv这里-m venv表示运行venv模块。.venv是虚拟环境目录的名字通常使用.venv或venv前面的点号使其在Linux下成为隐藏目录。这个命令会在当前目录下创建一个名为.venv的文件夹里面包含了独立的Python环境。激活虚拟环境source .venv/bin/activate激活后你的命令行提示符PS1通常会发生变化前面会多出(.venv)字样表示你当前正处于这个虚拟环境中。此时你运行的python、pip命令都指向.venv目录下的副本与外界完全隔离。验证一下which python # 输出应为/home/yourname/myproject/.venv/bin/python pip --version # 会显示pip指向虚拟环境内的路径4.2 在虚拟环境中管理依赖激活虚拟环境后所有pip install操作都只影响当前环境。安装项目依赖pip install requests django4.2这里我们安装了requests最新版和指定版本4.2的Django。将当前环境的依赖列表导出到一个文件这是团队协作和部署的标配pip freeze requirements.txtrequirements.txt文件内容类似asgiref3.7.2 Django4.2 requests2.31.0 ...其他人拿到你的项目在创建并激活虚拟环境后只需一行命令即可复现完全相同的依赖环境pip install -r requirements.txt4.3 退出与删除虚拟环境当你完成工作需要退出当前虚拟环境时deactivate提示符前的(.venv)会消失Python环境恢复到激活前的状态即pyenv管理的版本。如果你想彻底删除这个虚拟环境直接删除其目录即可rm -rf .venv因为虚拟环境完全位于项目目录内删除它简单而安全不会对系统或其他项目造成任何影响。4.4 使用pyenv-virtualenv可选但推荐pyenv有一个非常流行的插件叫pyenv-virtualenv它能够更好地与pyenv集成管理虚拟环境。如果你在安装pyenv时按照提示把eval $(pyenv virtualenv-init -)加入了shell配置那么这个插件就已经启用了。它的使用方式更直观# 使用某个Python版本创建一个虚拟环境 pyenv virtualenv 3.11.9 myproject-venv # 列出所有虚拟环境 pyenv virtualenvs # 在某个目录下使用这个虚拟环境类似pyenv local cd myproject pyenv local myproject-venv进入myproject目录后虚拟环境会自动激活退出目录后自动停用非常方便。虚拟环境本身存储在~/.pyenv/versions/目录下。5. 备选方案与特殊情况处理虽然pyenv是主流推荐但了解其他方法能让你在特定场景下应对自如。5.1 使用系统包管理器安装如果你只需要一个能用的、版本要求不高的Python系统包管理器是最快的方式。Ubuntu/Debian:sudo apt update sudo apt install python3 python3-pip python3-venv这条命令安装了Python3解释器、pip包管理工具和创建虚拟环境的venv模块。安装后你就可以用python3 -m venv .venv来创建虚拟环境了。RHEL/CentOS 8/Fedora:sudo dnf install python3 python3-pip在较新的RHEL系发行版上venv模块通常已包含在python3包中。注意通过包管理器安装的pip有时需要手动升级并且调用时可能是pip3。使用python3 -m pip是更通用的方式它明确指定了使用哪个Python解释器的pip。5.2 从源码编译安装追求极致控制当你需要最新的开发版、或者需要自定义编译参数如安装路径--prefix、优化选项--enable-optimizations时需要从源码编译。步骤概要安装依赖同pyenv依赖部分。从 python.org 下载源码包如Python-3.12.3.tar.xz。解压并进入目录tar -xf Python-3.12.3.tar.xz cd Python-3.12.3。配置编译选项./configure --prefix/usr/local/python3.12 --enable-optimizations--prefix指定安装目录--enable-optimizations会进行一些优化但会大大延长编译时间。编译make -j$(nproc)。-j参数利用多核加速。安装sudo make altinstall。关键点使用altinstall而不是install可以避免覆盖系统默认的python3二进制文件。安装后你可以通过/usr/local/python3.12/bin/python3.12来调用它。源码编译的灵活性最高但过程复杂容易出错且需要自行管理后续的更新和卸载一般不建议新手作为首选。5.3 处理“python”命令的指向问题在只安装了python3的系统上终端里输入python可能会报command not found。很多工具和教程习惯使用python命令。有几种解决方式创建软链接不推荐对系统Python操作sudo ln -s /usr/bin/python3 /usr/local/bin/python这为python3创建了一个名为python的全局别名。但要注意这可能会影响某些依赖python命令的系统脚本。使用pyenv推荐当你用pyenv global或pyenv local设置了一个Python 3版本后pyenv会自动处理好python命令的指向使其指向你激活的版本。习惯使用python3在脚本和命令行中坚持使用python3和pip3这是最明确、兼容性最好的做法。6. 验证安装与基础环境配置安装完成后进行一些基础验证和配置能让后续开发更顺畅。6.1 基础验证检查Python和pip版本及位置python --version python3 --version which python which pip pip --version确保它们指向你期望的位置比如虚拟环境内或pyenv管理的版本。运行一个简单的测试脚本test.pyimport sys print(fPython版本: {sys.version}) print(f执行路径: {sys.executable})6.2 配置pip镜像源国内使用默认的PyPI源下载包速度很慢。将源更换为国内镜像能极大提升体验。临时使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package永久配置推荐在用户目录下创建或修改pip配置文件~/.pip/pip.confLinux/macOS或%APPDATA%\pip\pip.iniWindows。Linux下操作mkdir -p ~/.pip cat ~/.pip/pip.conf EOF [global] index-url https://pypi.tuna.tsinghua.edu.cn/simple trusted-host pypi.tuna.tsinghua.edu.cn EOF常用的国内镜像源还有阿里云(https://mirrors.aliyun.com/pypi/simple/)、腾讯云等选一个即可。6.3 安装常用开发工具在全局环境或你的常用虚拟环境中可以考虑安装一些提升效率的工具# 代码格式化工具 pip install black isort # 静态类型检查 pip install mypy # 强大的REPL环境 pip install ipython # 交互式数据科学环境 pip install jupyterlab6.4 集成开发环境IDE配置最后让你的IDE或编辑器识别到你安装的Python环境。VS Code打开命令面板CtrlShiftP输入“Python: Select Interpreter”它会自动扫描出系统Python、pyenv管理的版本以及当前目录下的虚拟环境如.venv。选择对应的解释器即可。PyCharm在项目设置Settings/Preferences - Project: xxx - Python Interpreter中点击齿轮图标选择“Add Interpreter”。对于虚拟环境选择“Existing environment”然后定位到.venv/bin/python文件对于pyenv版本路径通常在~/.pyenv/versions/3.11.9/bin/python。配置好IDE后代码补全、语法检查、调试等功能都会基于你选择的Python环境工作从而保证开发环境的一致性。

相关新闻

ComfyUI ControlNet Aux 预处理节点尺寸约束机制深度解析

ComfyUI ControlNet Aux 预处理节点尺寸约束机制深度解析

ComfyUI ControlNet Aux 预处理节点尺寸约束机制深度解析 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 在AI绘画工作流中,ControlNet预处理节…

2026/10/5 13:30:11 阅读更多 →
影响消光比的因素及加工注意事项

影响消光比的因素及加工注意事项

一、影响偏振棱镜消光比的核心因素分晶体原材料、光学设计、加工工艺、装配胶合、使用环境五大类,按影响权重排序。(一)晶体母材本身(根源性因素,影响最大)1.光学均匀性折射率梯度、应力双折射会扰乱偏振态…

2026/10/12 20:07:09 阅读更多 →
酵母双杂交系统原理与应用:从蛋白质互作验证到实验优化指南

酵母双杂交系统原理与应用:从蛋白质互作验证到实验优化指南

如果你正在从事分子生物学或蛋白质相互作用研究,可能已经遇到过这样的困境:知道两个蛋白质可能互作,但如何用实验来验证?传统的共沉淀实验步骤繁琐、特异性有限,而质谱分析又成本高昂。这时候,酵母双杂交系…

2026/10/9 14:17:50 阅读更多 →

最新新闻

可靠性数据统计方法与R语言实战:从配套数据集到Weibull建模

可靠性数据统计方法与R语言实战:从配套数据集到Weibull建模

简介:《Statistical Methods for Reliability Data》配套数据集面向可靠性建模学习者和从业者,是这本经典著作的实操补充。包内围绕寿命分布、生存分析、故障率函数、可靠性增长、多组件系统可靠性、寿命试验设计与统计推断等核心知识点,提供…

2026/10/12 20:07:21 阅读更多 →
AI编程agent失控?用最小规格驱动工作流守住代码边界

AI编程agent失控?用最小规格驱动工作流守住代码边界

我本来是想抄作业的。Spec Kit、OpenSpec、Superpowers 这三个名字,我在搜索框里来回扫了不止一遍。原因很简单:最近一段时间的 AI 编程 agent 越来越难控制,改一个登录模块,它能顺手把我另一个文件的变量名也改了;说好…

2026/10/12 20:07:21 阅读更多 →
自建技术博客的完整实践:从静态站点生成到命令行发布

自建技术博客的完整实践:从静态站点生成到命令行发布

1. 起点:为什么要自建博客,而不是继续躺在平台里我相信每个写过一段时间技术博客的人,都会在某一天产生一个念头:我写的内容到底属于谁?这个念头在我身上盘旋了很久。平台给流量、给推荐、给了现成的排版和读者&#x…

2026/10/12 20:07:21 阅读更多 →
开放代码评审实践:从零搭建轻量级评审工具与流程

开放代码评审实践:从零搭建轻量级评审工具与流程

1. 为什么“代码评审”这件事值得单独拿出来做一套工具代码评审(Code Review)是研发流程里最容易被口号化、也最容易被敷衍的一环。几乎每个团队都声称自己在做评审,但真正落到日常,往往是三种状态:要么是“橡皮图章式…

2026/10/12 20:07:21 阅读更多 →
open-code-review:让代码评审有据可查、有果可闭环的工程实践

open-code-review:让代码评审有据可查、有果可闭环的工程实践

1. 项目概述:open-code-review 到底要解决什么代码评审这件事,但凡在团队里待过一两年的人,都经历过那种“评审2小时,改动3行”的尴尬局面。评审邮件发出去没人理,约了个会议大家对着屏幕沉默,等终于有人说…

2026/10/12 20:07:21 阅读更多 →
贷中风险预测竞赛级Python源码解析:从多表合并到LightGBM建模

贷中风险预测竞赛级Python源码解析:从多表合并到LightGBM建模

简介:面向计算机专业毕业设计、期末大作业及金融风控入门实践,这份完整项目包以贷中风险预测为核心任务,基于Python机器学习完整覆盖数据清洗、特征工程、模型训练与效果评估流程,适合需要从零构建实际项目的初中级学习者。资源共…

2026/10/12 20:06:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器: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/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练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/12 18:11:17 阅读更多 →