当前位置:首页>python>借助Docker离线搭建银河麒麟Python 环境(三):Docker 编译 PyQt5 + PyQt5 运行时库打包

借助Docker离线搭建银河麒麟Python 环境(三):Docker 编译 PyQt5 + PyQt5 运行时库打包

  • 2026-07-02 16:30:08
借助Docker离线搭建银河麒麟Python 环境(三):Docker 编译 PyQt5 + PyQt5 运行时库打包

摘要:

国产化替代浪潮下,很多项目需要部署在麒麟 V10 (飞腾处理器aarch64上运行。这些系统通常处于内网环境,无法直接联网安装 Python 依赖。本系列文章提供一套完整方案,在 Windows 上借助 Docker 模拟 aarch64 环境,完成 Python 版本升级、依赖下载、依赖编译,将产物拷贝到麒麟上部署。

这篇博文介绍:在 Docker 容器中编译 PyQt5 源码,打包编译产物,以及关键的步骤——提取完整的 Qt5 运行时依赖树,确保在麒麟 V10 上部署正确

本系列包含四篇文章:

第 1 篇docker环境准备和升级 Python版本
第 2 篇Docker 打包带依赖的 Python 环境
第 3 篇(本文):Docker 编译 PyQt5 + PyQt5 运行时库打包
上文回顾

在前两篇文章中,我们完成了:

  • 第一篇:在 Windows 上搭建 Docker ARM64 环境,使用 debian:11-slim + python-build-standalone 打包了 Python 3.10.11,在麒麟 V10 上解压即用。

  • 第二篇:在 Docker 容器中安装了 pysnmp、requests 等纯 Python 依赖,重新打包后实现"解压即有全部依赖",并讲解了 PyCharm 虚拟环境的配置方法。

但那些都是纯 Python 包——它们不包含 C/C++ 代码,下载后直接 import 就能用。如果项目需要 PyQt5(GUI 框架),情况就完全不同了。

本文聚焦:在 Docker 容器中编译 PyQt5 源码,打包编译产物,以及最关键的步骤——提取完整的 Qt5 运行时依赖树,确保在麒麟 V10 上部署后不会出现 undefined symbol 或 cannot open shared object file 错误。

升级资源在文后!!!

特别说明:本人不论在编程还是麒麟系统的使用都是新手,文章供大家讨论,如果大家还有更好、更方便的方法请大家留言指出!

一、 PyQt5 编译安装的原因

原因是官方没有 aarch64 wheel。打开  https://pypi.org/simple/pyqt5/ ,Ctrl+F 搜索 aarch64,结果为 0。是因为我没有找到PyQt5 官方发布的 Linux aarch64 的预编译 wheel。这意味着 pip install PyQt5 在aarch64 机器上会自动触发源码编译——但麒麟 V10 处于断网环境,且没有安装 Qt5 编译工具链,这条路走不通。

第二是采用APT 版本的局限性。Debian 11 的 APT 源中有 python3-pyqt5 预编译包:

python3-pyqt5 - Python 3 bindings for Qt5
但它会绑定到系统的 python3(Debian 11 自带 Python 3.9),而我们的 Python 3.10 是通过 python-build-standalone 独立安装的,两者互不相通。APT 安装的 PyQt5 无法被 Python 3.10 导入。
结论:必须在aarch64 环境中源码编译,Docker aarch64容器提供了完美的编译环境——有完整的 Qt5 开发库、编译工具链,且 glibc 与麒麟 V10 完全匹配。
二、编译环境说明

本篇沿用前两篇的 Docker 环境,编译所需组件如下:

组件
来源
版本
基础镜像
debian:11-slim
glibc 2.31
Python
python-build-standalone
3.10.11
Qt5 开发库
APT 源(qtbase5-dev 等)
5.15.2
SIP
pip
6.15.3
PyQt-builder
pip
1.19.1

前提条件:确保容器中已安装 Python 3.10(参见第一篇文章的 )。如果容器已退出,重新启动并安装 Python:

docker run --rm -it --platform linux/arm64 -v D:\pytq-test:/output debian:11-slim 
sed -'s/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.listapt-get updatetar -xzf /output/cpython-3.10.11+20230507-aarch64-unknown-linux-gnu-install_only.tar.gz -/usr/local --strip-components=1
三、Windows + Docker 操作

3.1 安装 Qt5 编译依赖

# 配置 APT 国内源(如未配置)sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.listapt-get update# 安装 Qt5 开发库和编译工具链apt-get install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools build-essential libgl1-mesa-dev

下载量约 200MB,务必使用国内源。在多核配置下约需十几分钟。安装完成后,确认 qmake 可用:

qmake --version#输出:QMake version 3.1Using Qt version 5.15.2 in /usr/lib/aarch64-linux-gnu

3.2 安装 Python 编译工具

pip3.10 config set global.index-url https://mirrors.aliyun.com/pypi/simple/pip3.10 install --upgrade pip setuptools wheel sip PyQt-builder输出:Successfully installed PyQt-builder-1.19.1 packaging-26.2 pip-26.1.2 setuptools-82.0.1 sip-6.15.3 tomli-2.4.1 wheel-0.47.0

3.3  下载 PyQt5 源码

cd /tmpwget https://files.pythonhosted.org/packages/5c/46/b4b6eae1e24d9432905ef1d4e7c28b6610e28252527cdc38f2a75997d8b5/PyQt5-5.15.9.tar.gztar -xzf PyQt5-5.15.9.tar.gzcd PyQt5-5.15.9

提示:不要使用 pip download --no-binary PyQt5,它会在 "Preparing metadata" 阶段卡死——因为隔离环境找不到 qmake。直接用 wget 下载源码是最可靠的方式。

3.4  用 sip-build 编译

sip-build --confirm-license --qmake=/usr/bin/qmake --build-dir /tmp/pyqt5_build

提示:新版 SIP(v6+)没有独立的 sip 命令。如果使用 python configure.py --sip=... 会报错 is not an executable。必须使用 sip-build。

编译过程输出:

Querying qmake about your Qt installation...This is the GPL version of PyQt 5.15.9 for Python 3.10.20 on linux.Checking to see if the QtCore bindings can be built...Checking to see if the QtNetwork bindings can be built......These bindings will be built: QtCore, QtNetwork, QtGui, QtWidgets, QtDBus,    QtOpenGL, QtPrintSupport, QtSql, QtTest, QtXml, Qt,    _QOpenGLFunctions_2_0, _QOpenGLFunctions_2_1, _QOpenGLFunctions_4_1_Core,    pylupdate, pyrcc.Generating the QtCore bindings...Generating the .pro files...Generating the Makefiles...Compiling the project...The project has been built.

deprecated 警告可忽略,不影响编译结果。编译时间约好几个小时,我测试多次都是在晚上完成,睡着了,不知多久(取决于 WSL 2 资源配置)。期间可另开 CMD 执行 docker ps 确认容器仍在运行。

3.5 安装编译产物

cd /tmp/pyqt5_buildmakeinstall

PyQt5 被安装到 /usr/local/lib/python3.10/site-packages/PyQt5/

3.6 安装 PyQt5-sip

PyQt5-sip 是 PyQt5 的运行时依赖:

pip3.10 install PyQt5-sip

pip 自动下载源码、编译、生成 wheel 并安装。输出:

Created wheel for PyQt5-sip: filename=pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whlSuccessfully installed PyQt5-sip-12.18.0

3.7 验证编译结果

python3.10 -c "from PyQt5 import QtWidgets; print('PyQt5 编译安装成功')"

输出:

PyQt5 编译安装成功

四、打包 Qt5 运行时库

编译成功只代表容器内能正常使用,我以为是万事大吉了。但是当我直接把 PyQt5 打包部署到麒麟,不断出现报错,下面记录发现和解决问题的过程

4.1 问题复现

假设我们只打包 PyQt5 编译产物并部署到麒麟,验证时会遇到以下错误:

第一个错误

ImportError: /opt/python310/lib/python3.10/site-packages/PyQt5/QtWidgets.abi3.so:undefined symbol: _ZNK9QTextEdit10MarkdownE6QFlagsIN13QTextDocument15MarkdownFeatureEE, version Qt_5

原因:PyQt5 的 .so 文件在编译时链接了 Docker 容器(Debian 11)中的 Qt 5.15.2,但麒麟 V10 的 Qt 版本更低(或根本没有 Qt5),导致符号找不到。

第二个错误(装上 Qt5 库之后):

ImportError: libmd4c.so.0: cannot open shared object file

原因:Qt5 本身还依赖 libmd4c(Markdown 解析库),麒麟上也没有。

第三个错误(装上 libmd4c 之后):

ImportError: libicui18n.so.67: cannot open shared object file

原因:Qt5 还依赖 ICU 国际化库。

一个接一个追缺少的 .so 文件会没完没了。需要一次性解决

4.2 原因分析

执行以下命令确认麒麟是否自带 Qt5:

find /usr -name"libQt5*.so*"2>/dev/null

如果没有输出,说明麒麟 V10 没有预装 Qt5 运行库。PyQt5 的 .so 文件在麒麟上运行时,找不到它链接的任何 Qt5 库。

依赖树发现方法。在 Docker 容器中,用 ldd 命令查看 libQt5Widgets.so 的全部依赖:

ldd /usr/lib/aarch64-linux-gnu/libQt5Widgets.so.5 |grep"=> /"|awk'{print $3}'|sort-u

输出包含了完整的依赖树:

/lib/aarch64-linux-gnu/libc.so.6        ← glibc 核心,麒麟自带,不打包/lib/aarch64-linux-gnu/libdl.so.2       ← glibc 核心,不打包/lib/aarch64-linux-gnu/libgcc_s.so.1    ← 基础库,不打包/lib/aarch64-linux-gnu/libm.so.6        ← glibc 核心,不打包/lib/aarch64-linux-gnu/libpcre.so.3     ← 基础库,麒麟可能有/lib/aarch64-linux-gnu/libpthread.so.0  ← glibc 核心,不打包/lib/aarch64-linux-gnu/libz.so.1        ← 基础库,麒麟可能有/usr/lib/aarch64-linux-gnu/libGL.so.1/usr/lib/aarch64-linux-gnu/libGLX.so.0/usr/lib/aarch64-linux-gnu/libGLdispatch.so.0/usr/lib/aarch64-linux-gnu/libQt5Core.so.5/usr/lib/aarch64-linux-gnu/libQt5Gui.so.5/usr/lib/aarch64-linux-gnu/libX11.so.6/usr/lib/aarch64-linux-gnu/libXau.so.6/usr/lib/aarch64-linux-gnu/libXdmcp.so.6/usr/lib/aarch64-linux-gnu/libbrotlicommon.so.1/usr/lib/aarch64-linux-gnu/libbrotlidec.so.1/usr/lib/aarch64-linux-gnu/libbsd.so.0/usr/lib/aarch64-linux-gnu/libdouble-conversion.so.3/usr/lib/aarch64-linux-gnu/libfreetype.so.6/usr/lib/aarch64-linux-gnu/libglib-2.0.so.0/usr/lib/aarch64-linux-gnu/libgraphite2.so.3/usr/lib/aarch64-linux-gnu/libharfbuzz.so.0/usr/lib/aarch64-linux-gnu/libicudata.so.67    ← 必须打包/usr/lib/aarch64-linux-gnu/libicui18n.so.67    ← 必须打包/usr/lib/aarch64-linux-gnu/libicuuc.so.67      ← 必须打包/usr/lib/aarch64-linux-gnu/libmd.so.0/usr/lib/aarch64-linux-gnu/libmd4c.so.0        ← 必须打包/usr/lib/aarch64-linux-gnu/libpcre2-16.so.0/usr/lib/aarch64-linux-gnu/libpng16.so.16/usr/lib/aarch64-linux-gnu/libstdc++.so.6/usr/lib/aarch64-linux-gnu/libxcb.so.1/usr/lib/aarch64-linux-gnu/libzstd.so.1

4.4 打包原则

库类型
是否打包
原因
glibc 核心(libc、libm、libpthread、libdl)
❌ 不打包
麒麟自带,版本兼容,覆盖会导致系统崩溃
基础系统库(libgcc_s、libpcre、libz)
❌ 不打包
麒麟自带
Qt5 核心库(libQt5*)
✅ 打包
麒麟可能没有
Qt5 间接依赖(libicu*、libmd4c、libfreetype 等)
✅ 打包
麒麟大概率没有或版本不匹配

4.5 完整打包命令

下面是完整的打包命令

cd /tar -czf /output/Qt5_full_runtime_arm64.tar.gz \  usr/lib/aarch64-linux-gnu/libQt5*.so* \  usr/lib/aarch64-linux-gnu/qt5/ \  usr/lib/aarch64-linux-gnu/libicu*.so* \  usr/lib/aarch64-linux-gnu/libmd4c.so* \  usr/lib/aarch64-linux-gnu/libdouble-conversion* \  usr/lib/aarch64-linux-gnu/libpcre2* \  usr/lib/aarch64-linux-gnu/libbrotli* \  usr/lib/aarch64-linux-gnu/libgraphite2* \  usr/lib/aarch64-linux-gnu/libharfbuzz* \  usr/lib/aarch64-linux-gnu/libfreetype* \  usr/lib/aarch64-linux-gnu/libpng16* \  usr/lib/aarch64-linux-gnu/libglib-2.0* \  usr/lib/aarch64-linux-gnu/libzstd* \  usr/lib/aarch64-linux-gnu/libGL*.so* \  usr/lib/aarch64-linux-gnu/libX11* \  usr/lib/aarch64-linux-gnu/libxcb* \  usr/lib/aarch64-linux-gnu/libXau* \  usr/lib/aarch64-linux-gnu/libXdmcp* \  usr/lib/aarch64-linux-gnu/libbsd* \  usr/lib/aarch64-linux-gnu/libmd.so* \  usr/lib/aarch64-linux-gnu/libstdc++.so* \  /lib/aarch64-linux-gnu/libpcre.so* \  /lib/aarch64-linux-gnu/libz.so*ls -lh /output/Qt5_full_runtime_arm64.tar.gz

输出:

-rw-r--r-- 1 root root 31M Jun 25 03:47 /output/Qt5_full_runtime_arm64.tar.gz

五、提取 PyQt5 编译产物

5.1 PyQt5-sip:使用 wheel

PyQt5-sip 在 pip 安装时已自动生成 wheel,直接提取:

# 查找 wheel 文件find /root/.cache -name "pyqt5_sip*.whl"# 复制到 outputcp /root/.cache/pip/wheels/71/8b/02/da35b19cc796c4dbddef0d58e1c98f737b2418cc5a0f2f82e7/pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whl /output/ls -lh /output/pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whl

输出:

-rw-r--r-- 1 root root 322K Jun 24 22:58 /output/pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whl

5.2 PyQt5 核心:使用 tar.gz

PyQt5 无法打包为 wheel,原因如下:

sip-build 编译 PyQt5 时,产物的安装方式不是标准的 Python wheel 流程。它会生成 .so 文件和一个 pyqt5-5.15.9.dist-info 目录,但缺少 wheel 打包必需的 WHEEL 和 RECORD 文件。即使尝试 pip3.10 wheel,也会在 Preparing metadata 阶段反复触发编译最终卡住。因此对于 sip-build 编译的 PyQt5,tar.gz 是最可靠的打包方式

cd /usr/local/lib/python3.10/site-packagestar -czf /output/PyQt5-5.15.9-cp310-cp310-linux_aarch64.tar.gz PyQt5/ pyqt5-5.15.9.dist-info/ls -lh /output/PyQt5-5.15.9-cp310-cp310-linux_aarch64.tar.gz

输出:

-rw-r--r-- 1 root root 5.0M Jun 25 02:10 /output/PyQt5-5.15.9-cp310-cp310-linux_aarch64.tar.gz

六、麒麟上部署

6.1 部署前检查

确认麒麟没有自带 Qt5 库:

find /usr -name"libQt5*.so*"2>/dev/null

如果无输出,说明系统没有 Qt5,可以直接部署到系统目录

6.2 拷贝文件清单

从 D:\pytq-test 拷贝以下 3 个文件到麒麟:(关注公众号,回复:pyqt5可以获取)

文件
大小
用途
Qt5_full_runtime_arm64.tar.gz
31MB
Qt5 运行时库及全部间接依赖
PyQt5-5.15.9-cp310-cp310-linux_aarch64.tar.gz
5.0MB
PyQt5 核心编译产物
pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whl
322KB
PyQt5-sip 运行时

6.3 部署步骤

# 1. 部署 Qt5 运行时库(麒麟无自带 Qt5,直接放系统目录安全)sudo tar -xzf Qt5_full_runtime_arm64.tar.gz -C /sudo ldconfig# 2. 部署 PyQt5 编译产物sudo tar -xzf PyQt5-5.15.9-cp310-cp310-linux_aarch64.tar.gz -C /opt/python310/lib/python3.10/site-packages/# 3. 安装 PyQt5-sip/opt/python310/bin/pip3.10 install --no-index --find-links=. pyqt5_sip-12.18.0-cp310-cp310-linux_aarch64.whl# 4. 验证/opt/python310/bin/python3.10 -c "from PyQt5 import QtWidgets; print('PyQt5 OK')"

期望输出:

PyQt5 OK

按照上面的步骤,就完成了PyQT5的编译安装。

文章总结

本文解决了纯 Python 依赖的打包问题。但项目中如果使用了 PyQt5 这类 C++ 扩展呢?PyQt5 官方从未发布 aarch64的预编译 wheel,必须从源码编译。而且编译后的 .so 文件依赖 Qt5 运行时库,麒麟 V10 没有自带 Qt5,部署时还会遇到 undefined symbol 和 libmd4c.so.0: cannot open 等错误。

(关注公众号,回复:“pyqt5”可以获取打包好的依赖包,写文章不容易,点个赞再走!)

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-02 23:32:08 HTTP/2.0 GET : https://f.mffb.com.cn/a/502767.html
  2. 运行时间 : 0.243376s [ 吞吐率:4.11req/s ] 内存消耗:4,853.53kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=156cc00b29d1623a952c25c4071bc1cf
  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.000421s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000745s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.022372s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.012873s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000799s ]
  6. SELECT * FROM `set` [ RunTime:0.017560s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000816s ]
  8. SELECT * FROM `article` WHERE `id` = 502767 LIMIT 1 [ RunTime:0.021415s ]
  9. UPDATE `article` SET `lasttime` = 1783006329 WHERE `id` = 502767 [ RunTime:0.011054s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000412s ]
  11. SELECT * FROM `article` WHERE `id` < 502767 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004437s ]
  12. SELECT * FROM `article` WHERE `id` > 502767 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000939s ]
  13. SELECT * FROM `article` WHERE `id` < 502767 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.036169s ]
  14. SELECT * FROM `article` WHERE `id` < 502767 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002825s ]
  15. SELECT * FROM `article` WHERE `id` < 502767 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.043029s ]
0.244899s