YOLOSHOW 跑 main.py 起不来?用 TaoToken 接 Codex 对照 PySide6 依赖查

发布时间:2026/9/19 21:59:47
YOLOSHOW 跑 main.py 起不来?用 TaoToken 接 Codex 对照 PySide6 依赖查 YOLOSHOW 跑 main.py 起不来Windows 11 下 conda、cu118 版 PyTorch、requirements.txt 都走完了最后却卡在 PySide6 或 qfluentwidgets 导入。先在 TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_end创建一把 Key把 Codex 的 Base URL 填到 https://taotoken.net/api让 Codex 对着安装日志和 Traceback 排查——TaoToken 只给 Key 和 Base URL不替代 PySide6、PyTorch 或 YOLO 模型本身。很多人的环境其实只差一个版本对齐或字体目录没复制但重装一遍成本太高也容易把 cu118 的 torch 覆盖掉。下面按原文的环境安装节奏走conda 建环境、装 cu118 PyTorch、跑 requirements.txt、补 PySide6 与 PySide6-Fluent-Widgets最后启动 main.py区别是把“排障”提前到每一步而不是等 GUI 闪退再回头猜。1. main.py 起不来先别急着重装把 YOLOSHOW 的 Traceback 分层1.1 PySide6/Qt 导入失败、qfluentwidgets 缺失、字体资源没复制各自长什么样YOLOSHOW 的 main.py 启动失败报错通常集中在四个层次先分清层次再动手能省掉大量无用重装。第一层是 Python 解释器找不包ModuleNotFoundError: No module named PySide6或No module named qfluentwidgets这多半是 conda 环境没激活、pip 装到了 base、或者 PySide6-Fluent-Widgets 只装了基础包没装[full]。第二层是包在、但 DLL 加载失败ImportError: DLL load failed while importing QtCore常见于 PySide6 版本与 Python 3.9 不匹配、VC 运行库缺失、或 PyQt5 与 PySide6 混装。第三层是 GUI 初始化阶段的资源缺失比如 qfluentwidgets 找不到字体、QFontDatabase: Cannot find font界面还没画出来就退出。第四层才是业务层torch 能 import、PySide6 也能 import但.pt模型路径或命名不对选模型时抛异常。把报错原文收齐不是让你抄整屏而是至少留下三样东西pip list里 PySide6、PySide6-Fluent-Widgets、torch、torchvision 的版本pip install -r requirements.txt最后二三十行输出python main.py的完整 Traceback从Traceback (most recent call last)到最后一个Error都不要截断。很多人只发一句“起不来”等于把最关键的版本对齐信息丢掉了。YOLO11、YOLOv5、YOLOv8、YOLOv9、RTDETR 这些模型本身不会让 main.py 在 import 阶段挂掉真正把启动卡死的是 GUI 依赖和资源路径先按上面的层次对号入座。1.2 为什么让 Codex 走 TaoToken 通道读日志比在搜索引擎里翻更快排障最耗时的不是“不知道装什么”而是“不知道自己这台机器上装成了什么样”。requirements.txt 写的是范围pip 实际装的是具体版本conda 环境里还可能混进旧包。把这三份材料交给一个能读代码、能对照版本的模型比反复搜报错关键词更直接。Codex 在这里的角色是“对照工具”它读 requirements.txt、读你的安装输出、读 main.py 的 Traceback然后告诉你哪一行版本不一致、哪个包应该降级或升级、下一条命令在本地怎么执行。它不会替你在机器上跑 pip也不会直连你的 YOLOSHOW 环境所有命令都得由你在激活了yoloshow的 PowerShell 里执行再把结果贴回对话。走 TaoToken 通道的好处是 Codex 的请求走统一 Base URLhttps://taotoken.net/apiKey 在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建模型 ID 以模型广场当时列表为准不用在多个供应商之间切来切去。你仍然只装一套 Codex只维护一份~/.codex/config.toml。需要强调的是TaoToken 不提供 PySide6、PyTorch 或 YOLO 模型文件它只解决“Codex 用哪个 API 通道”的问题依赖本身还得从 pip 和项目仓库来。把排障材料准备好之后下一步才是回到原文的 conda 和 cu118 安装步骤。2. conda yoloshow 与 cu118 版 PyTorch按原文顺序把地基铺好2.1 Windows 11 下 conda create -n yoloshow python3.9 的注意事项原文的环境起点是 Windows 11 condaPython 版本锁在 3.9这个组合对 PySide6 和 PyTorch cu118 都比较稳。先在 Anaconda Prompt 或 PowerShell 里建环境conda create -n yoloshow python3.9 -y conda activate yoloshow python --version最后一行应该输出Python 3.9.x。如果输出还是 3.11 或 3.12说明环境没激活或者你其实在 base 里。Windows 11 上还容易遇到 conda 环境建在 OneDrive 同步目录下路径带空格或中文后面 pip 装 PySide6 时偶发 DLL 加载失败能换到D:\conda-envs\yoloshow这类纯英文短路径就换掉。建完环境不要急着装 requirements.txt先确认where python指向的是yoloshow环境下的 python.exe而不是系统 Python 或 Microsoft Store 的 Python 别名。另一个细节是 pip 版本。Python 3.9 自带的 pip 有时偏旧装PySide6-Fluent-Widgets[full]这种带 extras 的包会解析失败或装成残缺版。可以先升级python -m pip install --upgrade pip setuptools wheel这一步不花多少时间但能减少后面“包显示装了、import 却缺模块”的假象。如果你之前已经在 base 里装过 PySide6 或 PyQt5强烈建议不要在 base 里继续混装YOLOSHOW 的依赖全部在这个独立 conda 环境里完成后面排查时才能确定版本来源。2.2 cu118 版 PyTorch 安装后先验证 torch.cuda.is_available()环境激活后按原文装 cu118 版 PyTorch。命令要带 index-url否则 pip 默认可能装成 CPU 版pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118装完先别急着跑 requirements.txt用一行命令确认 CUDA 可用python -c import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.version.cuda)理想输出里torch.cuda.is_available()是Truetorch.version.cuda显示11.8。如果显示False先检查显卡驱动是否支持 CUDA 11.8再检查是不是又装了 CPU 版 torch。有些人 requirements.txt 里带torch依赖后面再跑一次 pip 会把 cu118 版覆盖成 CPU 版所以顺序上建议先装 cu118 torch再跑 requirements.txt之后再用pip show torch复查版本有没有被改。YOLOSHOW 的推理速度依赖 CUDA但即使暂时Falsemain.py 也可能能启动到界面排障时把 torch 层和 PySide6 层分开别把“界面起不来”和“CUDA 不可用”混成一个问题。3. requirements.txt 与 PySide6-Fluent-Widgets[full]版本对照这一步最容易漏3.1 pip install -r requirements.txt 之后补装 PySide6 与 [full] 的顺序原文在 cu118 PyTorch 之后跑pip install -r requirements.txt然后再补PySide6-Fluent-Widgets[full]和PySide6。这个顺序有讲究requirements.txt 里如果写了 PySide6 的范围先跑它会装一个版本后面再手动装PySide6-Fluent-Widgets[full]时pip 可能为了满足 extras 再调整 PySide6。装完必须看输出里有没有Successfully installed以及版本号。建议按下面顺序执行并记录版本pip install -r requirements.txt pip install PySide6-Fluent-Widgets[full] PySide6 pip list | findstr /I PySide6 PySide6-Fluent torch这里最容易出问题的是 PySide6 主版本和 PySide6-Fluent-Widgets 的兼容性。PySide6-Fluent-Widgets的[full]extras 会带一整套依赖包括某些 Qt 绑定和字体相关资源如果只装PySide6-Fluent-Widgets不带[full]import 时可能报qfluentwidgets里某个子模块缺失。另一种情况是 PySide6 装得太新qfluentwidgets 调用的旧 API 被移除启动时抛AttributeError。这类问题不要靠猜直接把pip show PySide6、pip show PySide6-Fluent-Widgets的输出交给 Codex 对照。3.2 用 Codex 对照已安装版本和 requirements.txt 的差异这一步开始接入 Codex。先打开 TaoToken 注册并创建 API KeyKey 用占位符YOUR_API_KEY表示不要贴到公开聊天里。然后编辑~/.codex/config.tomlmodel YOUR_MODEL_ID model_provider taotoken [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEYYOUR_MODEL_ID以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当时列表为准不要自己编一个带日期后缀的名字。Base URL 末尾不要加/v1就和上面写的一样。Windows 下设置环境变量setx TAOTOKEN_API_KEY YOUR_API_KEY设完重开一个终端让环境变量生效。接着把三段材料贴给 Codexrequirements.txt 全文、pip install -r requirements.txt和补装 PySide6 的末尾输出、python main.py的 Traceback。提示词可以这样写我在 Windows 11 的 conda 环境 yoloshowPython 3.9里跑 YOLOSHOW。 已安装PySide6 版本是【粘贴】PySide6-Fluent-Widgets 版本是【粘贴】torch 版本是【粘贴】。 requirements.txt 如下【粘贴】 pip 安装输出末尾如下【粘贴】 python main.py 的 Traceback 如下【粘贴】 请对照 requirements.txt 和已安装版本列出不一致项并给出在本地 PowerShell 执行的修复命令。 不要直接修改我的文件只给命令和需要修改的行号。Codex 只能生成、解释、对照代码或配置不能替你执行 pip也不能直接连你的环境。所有修复命令由你在yoloshow环境里执行再把新输出贴回去。4. PySide6 字体与 qfluentwidgets 资源main.py 卡在 GUI 初始化时的处理4.1 字体目录复制路径与管理员权限如果 Traceback 里没有 import 错误而是界面还没显示就退出或者控制台出现字体相关警告优先检查 qfluentwidgets 的字体资源。YOLOSHOW 项目里通常会带一份字体目录可能在resource/font、fonts或app/resource/font下具体以你拉下来的版本为准。常见做法是把这些字体文件复制到系统字体目录或者放到项目根目录下 qfluentwidgets 能读到的fonts目录。Windows 11 复制到C:\Windows\Fonts需要管理员权限直接拖拽可能被拒绝可以右键字体文件选“为所有用户安装”。复制完先不要立刻跑 main.py用一条命令确认字体文件路径存在Get-ChildItem -Recurse -Include *.ttf,*.otf | Select-Object FullName在项目根目录执行看看字体到底在哪。如果项目 README 里写了“把 fonts 文件夹复制到项目根目录”就照着做如果没写把目录结构和 main.py 里加载字体的几行贴给 Codex让它判断应该放到哪个相对路径。注意这一步不是让 AI 去改系统字体而是让它对照代码里的路径拼接逻辑告诉你本地应该复制到哪。4.2 .pt 模型命名与 YOLO11/RTDETR 选择项加载PySide6 和字体都过了之后main.py 可能已经能显示主窗口但选择模型或加载权重时报错。YOLOSHOW 支持 YOLO11、YOLOv5、YOLOv8、YOLOv9、RTDETR 等模型模型文件通常放在models、weights或项目指定的目录下命名要与代码里的预设字符串一致。常见报错是FileNotFoundError或AssertionError: Model not found。先在 PowerShell 里列出模型目录Get-ChildItem -Recurse -Include *.pt | Select-Object FullName把输出和 main.py 里出现.pt字符串的行一起贴给 Codex让它对照“代码期望的文件名”和“你实际放的文件名”。不要自己把yolov8n.pt改成yolo11n.pt去骗过程序模型结构和权重不匹配会在推理时崩得更难看。如果某个模型类型加载失败但其他类型能正常启动先在界面里换一个能跑的模型验证 GUI 链路再单独处理那个模型的权重路径。5. 回到 YOLOSHOW 跑 python main.py验证、记录与下一步5.1 启动成功的标志与三条自检命令依赖版本对齐、字体目录处理完、模型文件命名检查过之后再执行python main.py启动成功有几个明确标志控制台不再刷 Traceback主窗口出现能看到 YOLO11、YOLOv5、YOLOv8、YOLOv9、RTDETR 等模型选择项能选择本地图片并触发推理。如果窗口一闪而过在 PowerShell 里跑而不是双击 bat这样 Traceback 会留在屏幕上。还可以用三条命令分别确认三层的状态python -c import PySide6; print(PySide6, PySide6.__version__) python -c import qfluentwidgets; print(qfluentwidgets, qfluentwidgets.__file__) python -c import torch; print(torch.__version__, torch.cuda.is_available())三条都正常输出说明 Python 层没问题剩下的就是 YOLOSHOW 内部路径和资源。把这三条输出、pip list里相关包的版本、以及成功启动后的截图或控制台最后几行一起交给 Codex让它帮你记一份“这台机器可用的版本组合”。下次换环境或重装时直接按这份组合来比重新试错快得多。5.2 仍未跑通时按 torch→PySide6→fluent→字体→模型 的顺序回退如果 main.py 还是起不来不要从头再装一遍。按下面顺序回退每一步只改一个变量第一确认python -c import torch不报错cu118 版本没有被 requirements.txt 覆盖第二确认import PySide6和from PySide6.QtWidgets import QApplication都能过第三确认import qfluentwidgets且[full]extras 已装第四确认字体文件在代码期望的路径下第五确认.pt模型文件名和代码预设一致。把每一步的报错单独贴给 Codex要求它只针对当前这一层给命令不要一次性给十条互相冲突的建议。这个回退顺序的好处是避免“把 CUDA 问题当 GUI 问题修”。有些报错看起来像 PySide6实际是 torch DLL 和 Qt DLL 冲突有些看起来像模型问题实际是 conda 环境没激活。每层只动一个包记录修改前后的pip show版本后面即使要回滚也有依据。Codex 走 TaoToken 通道读这些日志时把 Base URL 保持为https://taotoken.net/api不要多写/v1否则请求会打到不存在的路径。跑通之后如果你还要用同一把 Key 在别的工具里调模型建议先去 TaoToken 模型对话 发一条测试消息确认模型 ID 和 Base URL 没填错长期写代码可以看 Coding Plan 是否够用Key 在 控制台 API Keys 创建。Claude Code 的环境变量对照在 接入文档。YOLOSHOW 这边只要 conda 环境、PySide6 版本、字体目录和模型文件名四件事对齐python main.py就不会再无缘无故卡住。