You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下带Yolo的PySide6应用pyside6-deploy打包失败求助

问题场景

在Ubuntu 20.04.6 LTS系统的Python 3.8.10虚拟环境中,构建集成YOLO等机器学习功能的PySide6独立应用,执行pyside6-deploy mainwindow.py耗时约3小时后失败,错误输出翻译如下:

正在收集 nuitka==1.8.0
  使用缓存的 Nuitka-1.8-cp38-cp38-linux_x86_64.whl
正在收集 ordered-set>=4.1.0 (依赖自 nuitka==1.8.0)
  使用缓存的 ordered_set-4.1.0-py3-none-any.whl.metadata (5.3 kB)
正在收集 zstandard>=0.15 (依赖自 nuitka==1.8.0)
  使用缓存的 zstandard-0.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.0 kB)
使用缓存的 ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
使用缓存的 zstandard-0.23.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.4 MB)
正在安装收集到的包:zstandard, ordered-set, nuitka
  尝试卸载:zstandard
    发现已安装版本:zstandard 0.23.0
    正在卸载 zstandard-0.23.0:
      成功卸载 zstandard-0.23.0
  尝试卸载:ordered-set
    发现已安装版本:ordered-set 4.1.0
    正在卸载 ordered-set-4.1.0:
      成功卸载 ordered-set-4.1.0
  尝试卸载:nuitka
    发现已安装版本:Nuitka 1.8
    正在卸载 Nuitka-1.8:
      成功卸载 Nuitka-1.8
成功安装 nuitka-1.8 ordered-set-4.1.0 zstandard-0.23.0

[提示] pip有新版本可用:24.0 -> 24.2
[提示] 更新命令:pip install --upgrade pip
Nuitka插件:警告:anti-bloat:在'triton.common.build'中检测到不期望的'setuptools'导入(本应避免导入),路径为
'/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/triton/common/build.py:10'。这可能会减慢编译速度。
Nuitka插件:警告:     这是复杂问题!更多信息可参考相关文档
Nuitka插件:警告:anti-bloat:在'torch._dynamo.testing'中检测到不期望的'unittest'导入(本应避免导入),路径为
'/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/torch/_dynamo/testing.py:10'。这可能会减慢编译速度。
Nuitka插件:警告:     这是复杂问题!更多信息可参考相关文档
Nuitka插件:警告:anti-bloat:在'ultralytics.utils.checks'中检测到不期望的'IPython'导入(本应避免导入),路径为
'/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/ultralytics/utils/checks.py:574'。这可能会减慢编译速度。
Nuitka插件:警告:     这是复杂问题!更多信息可参考相关文档
Nuitka插件:警告:anti-bloat:在'ultralytics.utils.checks'中检测到不期望的'IPython'导入(本应避免导入),路径为
'/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/ultralytics/utils/checks.py:574'。这可能会减慢编译速度。
Nuitka插件:警告:     这是复杂问题!更多信息可参考相关文档
{标准输入}: 汇编器消息:
{标准输入}:48541: 警告:文件未在换行处结束;已插入换行符
{标准输入}:49639: 错误:`jmp`指令操作数数量不匹配
{标准输入}: 错误:文件末尾存在未关闭的CFI;缺少.cfi_endproc指令
gcc: 致命错误:Killed信号终止了程序cc1
编译终止。
scons: *** [module.yt_dlp.extractor.lazy_extractors.o] 错误 1
[DEPLOY] 发生异常:回溯(最近的调用最后):
  文件 "/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/commands.py", 第24行, 在 run_command
    subprocess.check_call(command, shell=is_windows)
  文件 "/usr/lib/python3.8/subprocess.py", 第364行, 在 check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: 命令 '['/home/navaneeth/workspace/OMS/tensorflow_env/bin/python', '-m', 'nuitka', '/home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/mainwindow.py', '--follow-imports', '--onefile', '--enable-plugin=pyside6', '--output-dir=/home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/deployment', '--quiet', '--noinclude-qt-translations', '--linux-icon=/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/pyside_icon.jpg']' 返回非零退出状态 1。

处理上述异常期间,发生新的异常:

回溯(最近的调用最后):
  文件 "/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy.py", 第102行, 在 main
    command_str = python.create_executable(source_file=config.source_file,
  文件 "/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/python_helper.py", 第200行, 在 create_executable
    command_str = self.nuitka.create_executable(source_file=source_file,
  文件 "/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/nuitka_helper.py", 第65行, 在 create_executable
    command_str, _ = run_command(command=command, dry_run=dry_run)
  文件 "/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/commands.py", 第30行, 在 run_command
    raise RuntimeError(
RuntimeError: [DEPLOY] 命令 /home/navaneeth/workspace/OMS/tensorflow_env/bin/python -m nuitka /home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/mainwindow.py --follow-imports --onefile --enable-plugin=pyside6 --output-dir=/home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/deployment --quiet --noinclude-qt-translations --linux-icon=/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/pyside_icon.jpg 执行失败,错误信息:命令 '['/home/navaneeth/workspace/OMS/tensorflow_env/bin/python', '-m', 'nuitka', '/home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/mainwindow.py', '--follow-imports', '--onefile', '--enable-plugin=pyside6', '--output-dir=/home/navaneeth/workspace/OMS/action_detection/standalone_app/Qt-App-4-deploy/deployment', '--quiet', '--noinclude-qt-translations', '--linux-icon=/home/navaneeth/workspace/OMS/tensorflow_env/lib/python3.8/site-packages/PySide6/scripts/deploy_lib/pyside_icon.jpg']' 返回非零退出状态 1。返回码1
核心错误分析
  1. 内存耗尽:gcc: fatal error: Killed signal terminated program cc1说明编译过程中系统因内存不足杀死了编译进程,这是长时间编译后失败的主要诱因。
  2. 汇编代码兼容性问题:jmp操作数不匹配、CFI未关闭的错误,是Nuitka生成的汇编代码与当前gcc版本不兼容导致的。
  3. 冗余依赖打包:日志中失败点在yt_dlp模块,说明--follow-imports参数打包了大量无关依赖,加剧了内存占用和编译复杂度。
解决方案

1. 缓解内存压力

  • 启用交换分区:
    sudo fallocate -l 4G /swapfile
    sudo chmod 600 /swapfile
    sudo mkswap /swapfile
    sudo swapon /swapfile
    
  • 限制编译进程数:在打包命令中添加--jobs=N参数(N为CPU核心数的一半,比如4核机器用--jobs=2),减少并行编译的内存消耗。

2. 修复汇编兼容性

  • 更新Nuitka到最新版:
    pip install --upgrade nuitka
    
  • 升级gcc版本:Ubuntu 20.04默认gcc为9.x,升级到gcc 11可解决部分汇编代码问题:
    sudo apt install gcc-11 g++-11
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
    sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
    

3. 优化打包依赖

  • 替换--follow-imports:改用--nofollow-imports配合--include-module手动指定核心依赖,避免打包yt_dlp这类无关模块。
  • 排除冗余模块:添加--exclude-module=IPython --exclude-module=unittest参数,移除Ultralytics中的测试/调试依赖。

4. 放弃单文件打包

去掉--onefile参数,改用目录模式打包,大幅降低内存占用和编译复杂度,后续可通过tar或打包工具整合目录。

内容的提问来源于stack exchange,提问作者Navaneeth K R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 11:59:51