原帖启动日志明确显示虚拟环境使用 Python 3.6.1,随后找不到 torch==1.12.1+cu113:
RuntimeError: Couldn't install torch.
读取启动日志,而不是只看最后一句 RuntimeError
原题最明确的证据是 venv 的 Python 3.6.1 与 torch 1.12.1 的要求不相容。网上同名文章可能讨论网络、磁盘或镜像,那些是其他分支;当前先确认启动器确实换到了兼容解释器。向系统 Python 升级 pip,不会升级这个已经创建的 venv。
最后的 RuntimeError 是启动器包装的信息。更有用的是前面的解释器版本与 No matching distribution found。官方兼容表显示 torch 1.12 对应的 Python 范围不包括 3.6,升级另一个环境中的 pip 无法改变这件事。
将下面保存为 check_env.py,在项目终端用日志里的虚拟环境解释器执行,例如 venv\Scripts\python.exe check_env.py:
import sys
import platform
print("josh050608")
print("python:", sys.executable, sys.version)
print("architecture:", platform.architecture(), platform.machine())
先查看所用 WebUI 版本的依赖说明。核对过的官方项目依赖页列出 Python 3.10.6,但旧分支、派生项目可能不同。安装适配的 64 位 Python 后,关闭 WebUI,把旧 venv 改名备份,让启动器用指定解释器重新创建;安装新 Python 不会自动升级已存在的 venv。
在 Windows 的 webui-user.bat 中,可按该项目启动方式设置自己的解释器绝对路径,例如 set PYTHON=C:\Python310\python.exe;实际路径以本机安装位置为准。不要直接删除模型、配置或整套项目。
重新启动后首先检查日志打印的 Python 路径和版本,再看 torch 安装命令。若仍无匹配分发包,保留完整 pip stderr,检查 Python 标签、架构、索引与网络。只有确认解释器兼容后,升级该 venv 自己的 pip 才有意义。验证应完成 torch 导入,再启动 WebUI,而不是以 pip 更新成功作为完成标准。
在 Windows 按路径核对安装目标
在 WebUI 项目目录打开命令提示符,先执行以下只读检查。PowerShell 可以在可执行路径前加调用符 &:
venv\Scripts\python.exe --version
venv\Scripts\python.exe -m pip --version
venv\Scripts\python.exe -m pip show torch torchvision
如果仍显示 3.6.1,问题尚未进入网络安装阶段。关闭启动器,把旧虚拟环境改名保留,用目标分支支持的 Python 重建;模型文件和输出图片无需挪动。更改 webui-user.bat 后,重启时再次看它打印的绝对路径,防止启动脚本仍引用另一套安装。
下面这个标准库片段可由日志里的解释器执行,用位数与版本排除另一个常见分支,不依赖 torch:
import sys
import struct
import platform
print("version tuple:", tuple(sys.version_info[:3]))
print("pointer bits:", struct.calcsize("P") * 8)
print("machine:", platform.machine())
print("prefix/base prefix:", sys.prefix, getattr(sys, "base_prefix", sys.prefix))
解释器兼容后,若安装仍失败,再按 pip 最早的具体错误区分:无匹配分发包查 Python/wheel 标签和索引;连接超时查网络;空间不足查磁盘。不要先把 torch 固定版本删掉,因为它可能是该 WebUI 提交验证过的依赖组合。
完成标准是这个 venv 能导入对应 torch、torchvision,随后启动器继续完成应用初始化。单独 pip install --upgrade pip 成功不代表目标依赖可安装,也不代表 WebUI 已使用正确环境。
参考:原始求助帖;技术依据:WebUI 官方依赖说明、torchvision 官方兼容表、PyTorch 历史安装组合、pip 官方用法。