错误是本地模型注册表中无匹配条目,主因是未拉取、路径偏移或名称解析失败;应先复制官网完整引用执行ollama pull,再检查ollama_path变量、重建manifests.db索引、用modelfile离线加载或确认ollama服务运行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您执行 ollama run llama3 时终端返回 model not found,该错误并非网络中断或权限异常所致,而是 Ollama 在本地模型注册表中未查到与 llama3 完全匹配的已注册条目。这通常由模型尚未拉取、路径配置偏移或名称解析失败直接引发。以下是可立即执行的紧急修复操作:
一、验证并强制拉取官方命名模型
Ollama 自 v4.0 起默认禁用隐式拉取,ollama run llama3 不再自动触发下载;且官网库中显示的 llama3 实际完整引用为 llama3:latest 或带量化后缀的变体(如 llama3:8b-instruct-q4_K_M),仅输入 llama3 将因标签缺失导致解析失败。
1、打开 https://ollama.com/library/llama3 ,点击进入详情页,复制页面顶部显示的完整模型引用(含冒号及 tag 部分)。
2、在终端中执行 ollama pull 命令,粘贴所复制的完整引用,例如:ollama pull llama3:8b-instruct-q4_K_M。
3、拉取完成后,立即运行 ollama list,确认输出中 NAME 列存在完全一致的字符串(包括大小写、冒号、连字符和下划线)。
二、校准模型存储路径与环境变量
Ollama 默认将模型存于 ~/.ollama/models,若系统中设置了 OLLAMA_PATH 或 OLLAMA_DIR 环境变量,服务将完全忽略默认路径,转而搜索该变量指向的位置;若该路径不存在、无读写权限或为空,则 ollama list 将始终为空,造成“模型丢失”假象。
1、在终端中执行 echo $OLLAMA_PATH 和 echo $OLLAMA_DIR,检查是否有非空输出。
2、若任一变量有值,运行 ls -la $OLLAMA_PATH/models 或 ls -la $OLLAMA_DIR/models,确认目录存在且包含子目录(每个子目录对应一个模型的 SHA256 哈希命名)。
3、若路径无效或为空,临时取消该变量影响:执行 unset OLLAMA_PATH OLLAMA_DIR,随后重启 Ollama 服务(systemctl --user restart ollama 或 brew services restart ollama)。
三、重建模型索引与服务状态重置
即使模型文件物理存在,Ollama 的 SQLite 注册表(~/.ollama/models/manifests.db)若损坏、版本不兼容或未加载,仍将返回 model not found;此时 ollama list 可能为空或条目缺失,但磁盘中实际存在 blob 文件。
1、停止 Ollama 服务:systemctl --user stop ollama(Linux/macOS)或任务管理器结束 ollama 进程(Windows)。
2、备份并移除注册表:mv ~/.ollama/models/manifests.db ~/.ollama/models/manifests.db.bak。
3、清空模型缓存索引:rm -rf ~/.ollama/models/blobs/*.sha256(保留原始 blob 文件,仅清除哈希索引)。
4、重新启动服务,并立即执行 ollama list;若仍为空,说明模型文件未被识别,需执行步骤一重新拉取。
四、绕过注册表直接加载本地 GGUF 文件
当拉取失败且您已持有合法 GGUF 格式模型文件(如从 Hugging Face 下载的 llama-3.1-8b-instruct.Q4_K_M.gguf),可通过 Modelfile 手动注册,跳过远程 registry 解析环节,适用于离线或代理受限环境。
1、在任意目录新建文本文件,命名为 Modelfile,内容为:
FROM ./llama-3.1-8b-instruct.Q4_K_M.gguf
2、确保该 GGUF 文件与 Modelfile 位于同一目录,并确认文件权限为可读(chmod 644)。
3、执行 ollama create llama3-offline -f Modelfile,等待构建完成。
4、运行 ollama list,确认出现 llama3-offline 条目,随后即可使用 ollama run llama3-offline 启动。
五、检查服务进程与端口占用冲突
Ollama 后台服务未运行或被其他进程劫持 11434 端口时,所有客户端命令(包括 ollama list)将退化为本地文件系统扫描,无法访问内存中的模型索引缓存,从而表现为“模型不可见”。
1、执行 ps aux | grep ollama(Linux/macOS)或打开任务管理器搜索 ollama 进程,确认主服务进程正在运行。
2、检查 11434 端口占用:lsof -i :11434(macOS/Linux)或 netstat -ano | findstr :11434(Windows)。
3、若端口被非 ollama 进程占用,记录 PID 并终止该进程;若 ollama 进程存在但无响应,强制 kill 后重新启动服务。











