当前位置:首页>python>一文讲透Python 版本管理、包管理与打包

一文讲透Python 版本管理、包管理与打包

  • 2026-06-22 03:09:37
一文讲透Python 版本管理、包管理与打包

一文讲透Python 版本管理、包管理与打包

从环境搭建到项目交付,Python 开发者必须掌握的三大核心技能。


前言

写过 Python 的人大概都有过这样的经历:刚接手一个老项目,发现需要 Python 3.8,但系统装的是 3.12;装了一堆包,结果两个项目的依赖互相冲突;好不容易写完代码,想打包给同事用,却不知道该用什么工具……

这三个问题分别对应着 Python 开发中的三道关卡:版本管理包管理打包分发。它们环环相扣,构成了从开发到交付的完整链路。

今天这篇文章,我们就来系统梳理一下这三个领域的主流工具和最佳实践,帮你找到最适合自己的那一套方案。


一、Python 版本管理:多版本共存的烦恼

在实际开发中,我们经常需要在多个 Python 版本之间切换。比如老项目用 3.8,新项目用 3.12;又如你想试试最新的 3.13 有什么新特性。系统自带的一个 Python 版本显然不够用,这就是版本管理工具的价值。

工具演进脉络:Python 版本管理经历了从系统包管理器 → pythonbrew(已废弃) → pyenv → 现代全能工具(uv)的演进。核心趋势是从"单一职责"走向"一站式整合"。

1.1 pyenv —— 轻量级版本管理的标杆

pyenv 是目前最主流的 Python 版本管理工具,它的核心思路非常简洁:通过 shims 代理机制拦截 python 命令的调用,根据当前目录的配置自动切换到对应的 Python 版本。

shims 的优先级规则(重要):当执行 python 命令时,pyenv 按以下顺序查找版本:

  1. 1. PYENV_VERSION 环境变量(pyenv shell 设置,当前会话生效)
  2. 2. 当前目录下的 .python-version 文件(pyenv local 设置,项目级)
  3. 3. 上级目录递归查找 .python-version
  4. 4. ~/.pyenv/version 全局配置(pyenv global 设置)

核心命令:

# 查看可安装的 Python 版本pyenv install --list# 安装指定版本pyenv install 3.12.4# 设置全局默认版本pyenv global 3.12.4# 为某个项目设置专属版本(写入 .python-version 文件)pyenv local 3.8.18# 临时切换当前会话版本(优先级最高)pyenv shell 3.11.9# 查看已安装的版本pyenv versions

pyenv 的优势:

  • • 轻量级,只管理 Python 解释器本身,不涉及包和环境
  • • 通过 .python-version 文件实现项目级别的版本绑定,团队协作时版本一致性好
  • • 支持从 3.0 到最新版的所有 CPython 版本,甚至可以编译特定 commit 的版本

局限性:

  • • Windows 上不原生支持(可用 pyenv-win 替代,但功能较原版有缩减,如不支持某些 shell 钩子)
  • • 不自带虚拟环境功能,需配合 python -m venv 或 pyenv-virtualenv 使用
  • • 在 Windows 上,更推荐使用官方 Python Launcher for Windows (py 命令) 进行版本切换

1.2 Conda —— 数据科学的全能选手

Conda 不仅是版本管理工具,更是一个完整的环境管理平台。它能同时管理 Python 版本、虚拟环境和包依赖(包括非 Python 包如 CUDA、R 包等)。

# 创建指定 Python 版本的环境conda create -n myproject python=3.11# 激活环境conda activate myproject# 导出环境配置(便于复现)conda env export > environment.yml# 从配置文件复现环境conda env create -f environment.yml

⚠️ 重要:Conda 与 pip 的混用陷阱

在数据科学场景中,经常需要在 Conda 环境中使用 pip 安装 PyPI 上的包。但混用可能导致依赖解析冲突:

# ❌ 错误做法:随意混用conda install numpypip install tensorflow  # 可能覆盖 conda 安装的 numpy,导致版本不兼容# ✅ 正确做法:conda 优先,pip 作为补充,且最后运行conda install numpy scipy pandaspip install some-pypi-only-package# 完成后立即导出环境快照conda env export > environment.yml

Conda 的优势:

  • • 一站式解决方案,不用再搭配其他工具
  • • 能管理非 Python 依赖(CUDA、FFmpeg、Node.js 等),这在数据科学和机器学习场景中极为重要
  • • 环境可复现性强,environment.yml 可以一键重建完整环境

局限性:

  • • Anaconda 完整版体积超过 3GB,Miniconda 也要约 400MB
  • • 包解析速度较慢(可用 mamba 或 micromamba 加速)
  • • 某些纯 Python 包在 conda 源中的更新速度不如 PyPI

1.3 venv —— Python 内置的虚拟环境

python -m venv 是 Python 3.3+ 内置的虚拟环境工具,它不管理 Python 版本本身,但能为每个项目创建独立的包空间。

# 创建虚拟环境python -m venv .venv# 激活(Linux/macOS)source .venv/bin/activate# 激活(Windows).venv\Scripts\activate# 退出deactivate

venv 的定位很清晰:轻量、够用、零依赖。它不追求花哨的功能,只做一件事——隔离项目依赖。对于大多数 Web 开发和通用开发场景,pyenv + venv 就是最经典的组合。

1.4 uv —— 新时代的全能黑马

2024 年由 Astral 团队(Ruff 的作者)推出的 uv,用 Rust 编写,以极快的速度和全能的功能迅速席卷 Python 社区。

# 安装指定 Python 版本(替代 pyenv)uv python install 3.12.4# 创建虚拟环境(替代 venv)uv venv# 安装包(替代 pip)uv add requests# 同步依赖uv sync

uv 的野心很大:一个工具替代 pyenv + pip + venv + poetry。它内置了 Python 版本管理、虚拟环境管理、包安装和锁文件管理,而且因为 Rust 的加持,依赖解析和安装速度远超传统工具。

性能基准(参考):在干净的 Linux 环境中安装 Django + DRF + Celery 栈:

  • • pip: ~45-60 秒
  • • Poetry: ~30-40 秒
  • • uv: ~3-5 秒

实际速度因网络环境和缓存状态而异,但 uv 的数量级优势在大型项目中尤为明显。

⚠️ 注意:uv 正在快速获得社区关注,但在企业级采纳率上仍不及 Poetry 和 Conda。对于需要长期维护的大型项目,建议评估其生态成熟度后再迁移。

版本管理工具选型指南

场景
推荐方案
Web 开发 / 通用开发
pyenv + venv
 或 uv
数据科学 / 机器学习
Miniconda + mamba
追求极致效率
uv
(一站到底)
企业级环境复现
Conda
(environment.yml)
Windows 原生开发
Python Launcher (py)
 + venv 或 uv

二、Python 包管理:依赖的艺术

版本管理解决了"用哪个 Python"的问题,接下来就是"装哪些包、怎么装"。

工具演进脉络:Python 包管理经历了 requirements.txt → pipenv(已逐渐边缘化) → Poetry → uv 的演进。核心趋势是"声明式配置 + 确定性锁文件"。

2.1 pip —— 永远的默认选项

pip 是 Python 事实上的标准包管理器,随 Python 解释器一起安装,是绝大多数开发者接触的第一个包管理工具。

# 安装包pip install requests# 导出依赖pip freeze > requirements.txt# 从文件安装pip install -r requirements.txt# 使用镜像源加速(国内推荐)pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

pip 的特点:

  • • 零安装成本,Python 自带
  • • 生态兼容性最好,PyPI 上几乎所有包都支持 pip 安装
  • • 简单场景下 requirements.txt 足够使用

pip 的痛点:

  • • pip freeze 生成的是已安装包的精确版本列表,但不具备跨平台解析和哈希校验能力,不是真正的依赖解析锁
  • • 不支持依赖分组(如 dev 依赖和 prod 依赖)
  • • 不内置虚拟环境管理
  • • 解析速度一般

补充:pip 23+ 已支持 pyproject.toml 的部分解析能力,且配合 pip-tools 可以生成真正的锁文件(pip-compile),适合需要渐进升级的团队。

2.2 Poetry —— 优雅的依赖管理

Poetry 将所有项目配置集中到 pyproject.toml 一个文件中,告别 setup.pysetup.cfgrequirements.txt 的散乱组合。

# 初始化项目poetry init# 添加运行时依赖poetry add requests# 添加开发依赖poetry add --group dev pytest black# 安装所有依赖poetry install# 生成锁文件poetry lock

Poetry 的 pyproject.toml 示例:

[tool.poetry]name = "my-project"version = "0.1.0"description = "A wonderful project"authors = ["Your Name <you@example.com>"][tool.poetry.dependencies]python = "^3.11"requests = "^2.31.0"[tool.poetry.group.dev.dependencies]pytest = "^8.0.0"black = "^24.0.0"

Poetry 的优势:

  • • poetry.lock 提供真正的依赖锁,确保环境可复现
  • • 依赖分组清晰,dev 依赖和运行时依赖分离
  • • 内置虚拟环境管理,无需额外工具
  • • 支持 poetry build 和 poetry publish 进行项目构建和发布
  • • 社区生态成熟,被大量开源项目采用

⚠️ Poetry 与 uv 的混用警告

两者都使用 pyproject.toml,但锁文件格式不同(poetry.lock vs uv.lock)。不建议在同一项目中混用,这会导致:

  • • 团队成员安装不同版本的依赖
  • • CI/CD 环境行为不一致
  • • 合并冲突频繁

如果团队正在从 Poetry 迁移到 uv,建议:

  1. 1. 删除 poetry.lock
  2. 2. 运行 uv sync 生成新的 uv.lock
  3. 3. 在 README 中明确声明工具要求

2.3 uv —— 包管理领域的新标杆

前文提到 uv 是版本管理工具,但它的包管理能力同样出色。

# 初始化项目uv init# 添加依赖(自动更新 pyproject.toml 和 uv.lock)uv add requests# 添加开发依赖uv add --dev pytest# 同步环境uv sync# 构建项目uv build# 发布到 PyPIuv publish

uv 包管理的核心优势:

  • • 速度极快:得益于 Rust 实现,依赖解析和安装速度远超 pip 和 Poetry
  • • 兼容性好:完全兼容 pip 的生态,pyproject.toml 格式符合 PEP 标准
  • • 锁文件稳定uv.lock 确保依赖精确复现
  • • 功能全面:从包管理到构建发布一条龙

包管理工具选型指南

场景
推荐方案
简单脚本 / CI/CD
pip + requirements.txt
 或 uv
正式项目开发
Poetry
 或 uv
追求极致速度
uv
数据科学项目
Conda
(配合 pip 使用,注意混用规则)
需要构建发布
Poetry
 或 uv
渐进式迁移(已有 requirements.txt)
pip-tools
 → Poetry / uv

三、Python 打包分发:让代码走出你的电脑

代码写完了,总得交付给别人用。但不是每个人都有 Python 环境,也不可能要求每个使用者都手动装依赖。这时候就需要打包工具,把 Python 应用变成可以直接运行的可执行文件。

3.1 PyInstaller —— 最流行的打包工具

PyInstaller 是目前使用最广泛的 Python 打包工具,它的核心理念是:把 Python 解释器、你的代码、所有依赖,全部打包到一个可执行文件中。

基本用法:

# 安装pip install pyinstaller# 最简单的打包(生成单目录)pyinstaller main.py# 打包为单个可执行文件pyinstaller --onefile main.py# 添加图标pyinstaller --onefile --icon=app.ico main.py# 添加隐藏导入(处理动态导入的模块)pyinstaller --onefile --hidden-import=sklearn main.py# 不弹出控制台窗口(GUI 应用)pyinstaller --onefile --noconsole main.py

PyInstaller 的两大打包模式:

  • • --onedir(默认):生成一个目录,包含可执行文件和所有依赖文件。优点是启动速度快(无需解压),缺点是文件多,分发时需要整个文件夹一起打包。
  • • --onefile:生成单个可执行文件。优点是分发方便(一个文件搞定),缺点是每次启动都要先解压临时文件,启动速度较慢。

PyInstaller 的优势:

  • • 上手极其简单,一行命令即可打包
  • • 社区最活跃,问题解决方案最多
  • • 兼容性最好,对主流第三方库都有 hook 支持
  • • 支持 Windows、macOS、Linux 三大平台

PyInstaller 的局限:

  • • 不编译为原生代码,源码可通过工具(如 pyinstxtractor)反编译
  • • --onefile 模式启动速度慢
  • • 打包体积较大(包含完整解释器)
  • • 杀毒软件容易误报
  • • 跨平台构建复杂:在 Linux 上打包 Windows 可执行文件需要 Wine 环境

3.2 Nuitka —— 真正的 Python 编译器

如果你有性能优化或源码保护的需求,Nuitka 是更好的选择。它的原理是将 Python 代码编译为 C 代码,再用 C 编译器编译为原生机器码。

基本用法:

# 安装pip install nuitka# 基本编译nuitka main.py# 编译为单文件可执行文件nuitka --onefile main.py# 启用优化nuitka --onefile --optimize=1 main.py# 包含数据文件nuitka --onefile --include-data-dir=data/=data/ main.py# 不弹出控制台nuitka --onefile --disable-console main.py

Nuitka 的核心优势:

  • • 真正的编译:Python 代码变为原生机器码,运行性能提升 10%~300%
  • • 源码保护强:编译为二进制后相比 PyInstaller 显著提升了逆向难度,相比 .pyc 文件更难还原为可读 Python 代码
  • • 启动速度快:无需像 PyInstaller 那样解压临时文件
  • • 近年来发展迅速,对 Python 3.12/3.13 的支持日趋完善

Nuitka 的注意事项:

  • • 需要安装 C 编译器(Windows 上需要 Visual Studio 或 MinGW,Linux/macOS 通常自带 gcc/clang)
  • • 编译过程耗时较长(大型项目可能需要数十分钟)
  • • 编译报错的排查比 PyInstaller 复杂
  • • 交叉编译支持较弱,目标平台的二进制通常需要在对应平台上编译

3.3 cx_Freeze —— 老牌的打包工具

cx_Freeze 是 Python 打包领域的历史悠久者,通过 setup.py 进行灵活配置。

# setup.pyfrom cx_Freeze import setup, Executablebuild_exe_options = {"packages": ["os", "sys"], "includes": []}executables = [Executable("main.py", base="Win32GUI")]setup(    name="my_app",    version="0.1",    options={"build_exe": build_exe_options},    executables=executables,)
# 打包python setup.py build

cx_Freeze 的优势在于配置灵活,但社区规模、文档质量和第三方库兼容性都不如 PyInstaller 和 Nuitka。适合对它已有了解或有特定需求的项目。

3.4 其他新兴工具

工具
特点
适用场景
PyOxidizer
Rust 编写,生成单文件,启动极快
对启动速度要求极高的工具
Briefcase
 (BeeWare)
支持生成原生安装包(.msi/.dmg/.apk)
需要系统级安装体验的 GUI 应用
py2app
macOS 专用,生成 .app  bundle
macOS 原生应用分发

打包工具选型指南

场景
推荐工具
理由
快速分发小工具
PyInstaller
一行命令,零学习成本
商业软件 / 源码保护
Nuitka
编译为原生二进制,显著提升逆向难度
性能敏感型应用
Nuitka
运行速度大幅提升
GUI 应用(PyQt/Tkinter)
PyInstaller
 或 Nuitka
两者都有良好支持
数据科学 / AI 应用
PyInstaller
生态兼容性最好,hook 丰富
Linux 服务部署
Nuitka
编译为原生二进制,便于管理
学习 / 入门
PyInstaller
资料最多,上手最简单
需要代码签名/公证
Nuitka
 + 平台工具
macOS notarization、Windows 代码签名对二进制更友好
跨平台构建(单构建机产出多平台)
PyInstaller
 + CI 矩阵
Nuitka 的交叉编译支持较弱

四、全流程最佳实践

理解了每类工具的定位,我们来梳理一下从零开始一个项目的推荐工作流。

推荐方案一:经典组合(稳定可靠)

pyenv(管理 Python 版本)  + python -m venv(隔离项目环境)    + pip + requirements.txt(管理依赖)      + PyInstaller(打包分发)

这套组合最经典,每个工具都做好一件事,组合起来覆盖全流程。适合对工具新手友好,资料多、问题好排查。

推荐方案二:现代组合(高效优雅)

uv(版本管理 + 虚拟环境 + 包管理 + 锁文件)  + PyInstaller 或 Nuitka(打包分发)

uv 一个工具搞定前三个环节,简洁高效。这是 2025-2026 年最受关注的方案,适合追求效率和喜欢尝新的开发者。

推荐方案三:数据科学组合

Miniconda + mamba(版本 + 环境 + 包管理)  + PyInstaller(打包分发)

Conda 在数据科学场景中不可替代(CUDA 等非 Python 依赖的管理),配合 mamba 加速后体验也大幅提升。

工具组合的核心原则

不同层级的工具可以混用,但同层级的工具不建议混用:

层级
工具
混用规则
版本管理
pyenv, uv, Conda
✅ 可以混用(如 pyenv 管理版本 + venv 管理环境)
包管理
pip, Poetry, uv, Conda
❌ 不建议混用( Poetry 和 uv 的锁文件会冲突)
打包
PyInstaller, Nuitka, cx_Freeze
✅ 可以按场景选择不同项目使用不同工具

五、避坑指南

无论选择哪种工具组合,以下这些坑值得提前了解:

1. 永远不要在系统 Python 中直接装包

系统 Python 被操作系统依赖,随意修改可能导致系统工具异常。永远使用虚拟环境。

2. requirements.txt 的版本约束要适度

# ❌ 不推荐:精确锁定,不灵活,且无法享受补丁更新requests==2.31.0# ❌ 不推荐:过于宽松,可能导致破坏性更新requests>=2.31.0# ✅ 推荐:语义化版本范围,平衡灵活性与可复现性requests>=2.31.0,<3.0.0

关键:过度宽松的范围约束同样会导致"在我机器上能跑"的问题。生产环境务必配合锁文件(poetry.lock / uv.lock)使用。

3. 锁文件要提交到版本控制

无论是 poetry.lock 还是 uv.lock,都应提交到 Git。锁文件保证了所有协作者和 CI 环境的依赖完全一致。

4. CI/CD 中的工具选择

场景
推荐配置
GitHub Actions
astral-sh/setup-uv
 比 actions/setup-python + pip 更快
Docker 构建缓存
uv.lock
 的确定性比 requirements.txt 更利于层缓存
多 Python 版本测试
uv
 的多版本管理比 tox + pyenv 更轻量

5. PyInstaller 打包前先测试

打包过程可能遇到隐藏导入、数据文件缺失等问题。建议:

  • • 在干净的虚拟环境中测试打包
  • • 使用 --debug 选项排查问题
  • • 复杂项目建议写 spec 文件进行精细控制

6. Nuitka 编译要预留时间

大型项目的首次编译可能需要较长时间,建议:

  • • 先在默认模式(非 --onefile)下调试通过
  • • 确认无误后再进行完整编译和优化
  • • 在 CI 中缓存编译产物

7. 真实案例:混用工具导致的灾难

案例:某 5 人数据团队,部分成员用 conda install 装包,部分用 pip install,且没有统一导出 environment.yml。结果在交付模型时,A 成员的代码在 B 成员的环境中运行报错,排查发现是 numpy 版本差异导致。最终花费 2 天重新统一环境。

教训

  • • 团队必须约定统一的包管理工具
  • • 无论用哪种工具,都必须有锁定的环境描述文件
  • • Conda + pip 混用时,pip 必须在 conda 之后运行,且立即导出环境快照

结语

Python 生态中的工具在不断进化。从早期简单的 pip + virtualenv,到后来的 pyenv + Poetry,再到如今的 uv 一站式方案,工具链正在变得越来越简洁、越来越高效。

但工具始终是手段,不是目的。选择哪套方案,取决于你的项目类型、团队习惯和个人偏好。重要的是理解每类工具解决的核心问题,以及不同层级工具可以搭配、同层级工具不要混用的基本原则,这样才能在纷繁的选择中找到最适合自己的路。

希望这篇文章能帮你理清 Python 版本管理、包管理和打包的完整图景。如果你有好的实践经验或踩坑经历,欢迎留言分享交流。


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 05:19:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/491934.html
  2. 运行时间 : 0.109199s [ 吞吐率:9.16req/s ] 内存消耗:4,401.84kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=cbe6f8086817c09dba44315754eaa67c
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000609s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000804s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000328s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000273s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000480s ]
  6. SELECT * FROM `set` [ RunTime:0.000194s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000561s ]
  8. SELECT * FROM `article` WHERE `id` = 491934 LIMIT 1 [ RunTime:0.001545s ]
  9. UPDATE `article` SET `lasttime` = 1783113579 WHERE `id` = 491934 [ RunTime:0.011301s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000287s ]
  11. SELECT * FROM `article` WHERE `id` < 491934 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000508s ]
  12. SELECT * FROM `article` WHERE `id` > 491934 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001310s ]
  13. SELECT * FROM `article` WHERE `id` < 491934 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000568s ]
  14. SELECT * FROM `article` WHERE `id` < 491934 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003688s ]
  15. SELECT * FROM `article` WHERE `id` < 491934 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003954s ]
0.110693s