Ollama安装的详细步骤以及Python调用Qwen

下面为整理的 Ollama 详细安装步骤 以及 Python 调用本地 Qwen 模型 的完整指南。


第一部分:Ollama 安装详细步骤 (Windows 版)

Ollama 是目前最简单的本地大模型运行工具,它会自动处理驱动、依赖和量化问题。

1. 下载安装包

由于官方服务器在国外,下载速度可能较慢,您可以选择以下任一方式:

  • 方式 A(官方推荐) :访问 ollama.com 点击 "Download for Windows"。
  • 方式 B(国内加速/镜像) :如果官网下载慢,可以使用国内社区提供的加速链接(如 CSDN 或博客园推荐的镜像源),搜索 "Ollama Windows 安装包 镜像" 即可找到最新 .exe 文件。
2. 执行安装
  1. 双击下载好的 OllamaSetup.exe
  2. 点击 Install 按钮。
  3. 安装过程非常快(通常只需几秒钟),因为它主要是在配置环境变量和服务。
  4. 安装完成后,Ollama 会自动在后台启动。您会在任务栏右下角(系统托盘)看到一个 小羊驼图标 🦙。
    • 注意:此时不要关闭它,它是 Ollama 的服务端,关闭后命令行将无法使用。
3. 验证安装

打开 PowerShell 或 命令提示符 (CMD),输入以下命令:

powershell 复制代码
ollama --version

如果显示版本号(例如 ollama version is 0.x.x),说明安装成功。

4. (可选但推荐) 修改模型存储路径

默认情况下,模型会下载到 C 盘 (C:\Users\用户名\.ollama)。鉴于大模型文件很大(几个 GB 到几十 GB),建议提前修改到其他盘(如 E 盘)。

  1. 创建文件夹 :在 E 盘新建文件夹,例如 E:\OllamaModels
  2. 设置系统环境变量
    • Win + S,搜索 "编辑系统环境变量" 并打开。
    • 点击 "环境变量"。
    • 在 "系统变量 " (下方区域) 中,点击 "新建 "。
      • 变量名 : OLLAMA_MODELS
      • 变量值 : E:\OllamaModels
    • 连续点击 "确定" 保存。
  3. 重启 Ollama 服务
    • 右键点击任务栏右下角的 Ollama 图标 -> Quit Ollama
    • 重新从开始菜单启动 Ollama
    • 现在,所有新下载的模型都会保存在 E 盘了。
5. 下载并运行 Qwen 模型

在终端中输入以下命令(以 Qwen2.5 为例):

powershell 复制代码
ollama run qwen2.5
  • 第一次运行会自动下载模型(根据网速可能需要几分钟)。
  • 下载完成后,直接进入对话界面。
  • 输入 /bye 可退出对话。

第二部分:Python 调用本地 Qwen 模型

Ollama 安装好后,会在本地启动一个 API 服务(默认端口 11434)。我们可以使用 Python 轻松调用它。

方法一:使用官方 ollama 库(推荐)

这是最简单、功能最全的方法,支持流式输出、多模态等。

1. 安装库

powershell 复制代码
pip install ollama

2. 代码示例

python 复制代码
import ollama

def chat_with_qwen():
    model_name = "qwen2.5"  # 确保你已通过 'ollama run qwen2.5' 下载了此模型
    
    messages = [
        {'role': 'system', 'content': '你是一个专业的 Python 编程助手。'},
        {'role': 'user', 'content': '请用 Python 写一个计算斐波那契数列的函数,并解释原理。'}
    ]

    try:
        # 非流式调用(一次性返回结果)
        # response = ollama.chat(model=model_name, messages=messages)
        # print(response['message']['content'])

        # --- 推荐:流式调用(像聊天一样逐字输出) ---
        stream = ollama.chat(
            model=model_name,
            messages=messages,
            stream=True,
        )
        
        print(f"Qwen ({model_name}) 正在回答:\n")
        for chunk in stream:
            # end='' 防止 print 自动换行,实现打字机效果
            print(chunk['message']['content'], end='', flush=True)
            
        print("\n\n回答结束。")

    except Exception as e:
        print(f"调用失败: {e}")
        print("提示:请确保 Ollama 服务正在运行(右下角有小羊驼图标),且模型已下载。")

if __name__ == "__main__":
    chat_with_qwen()
方法二:使用 requests 库(无需额外安装 ollama 库)

如果你不想安装额外的库,可以直接通过 HTTP 请求调用 Ollama 的 API。

1. 确保安装了 requests

powershell 复制代码
pip install requests

2. 代码示例

python 复制代码
import requests
import json

def chat_with_qwen_requests():
    url = "http://localhost:11434/api/chat"
    
    payload = {
        "model": "qwen2.5",
        "messages": [
            {"role": "user", "content": "你好,请介绍一下你自己。"}
        ],
        "stream": False  # 设置为 True 可开启流式,但处理逻辑稍复杂
    }

    try:
        response = requests.post(url, json=payload)
        response.raise_for_status()  # 检查请求是否成功
        
        result = response.json()
        print(result['message']['content'])
        
    except requests.exceptions.ConnectionError:
        print("连接失败:请检查 Ollama 服务是否已启动。")
    except Exception as e:
        print(f"发生错误: {e}")

if __name__ == "__main__":
    chat_with_qwen_requests()

💡 常见问题排查 (FAQ)

问题现象 可能原因 解决方案
Connection refused Ollama 服务未启动 检查右下角是否有小羊驼图标;如果没有,从开始菜单启动 Ollama。
model not found 模型未下载或名称错误 运行 ollama list 查看已安装的模型名称。如果列表中没有,运行 ollama pull qwen2.5 下载。
响应速度极慢 使用了 CPU 而非 GPU Ollama 会自动检测 GPU。如果没有独显,它会用 CPU(会很慢)。确保显卡驱动已更新。
显存不足 (OOM) 模型太大,显存放不下 尝试更小参数的版本,如 ollama run qwen2.5:1.5bqwen2.5:3b
Python 代码报错但命令行正常 环境变量未生效 如果你在 PowerShell 设置了 OLLAMA_MODELS,Python 脚本可能没读到。建议设为系统环境变量并重启电脑。
相关推荐
没有羊的王K2 小时前
机器学习指标解析:AUC与KS值
开发语言·python
是大强2 小时前
TensorFlow Lite
人工智能·python·tensorflow
Wenzar_2 小时前
# 发散创新:SwiftUI 中状态管理的深度实践与重构艺术 在 SwiftUI 的世界里,**状态驱动 UI 是核心哲学**。但随
java·python·ui·重构·swiftui
\xin2 小时前
Pikachu的python一键exp,xx型注入,“insert/updata“注入,“delete“注入,“http header“注入
数据库·python·http
Ulyanov2 小时前
《PySide6 GUI开发指南:QML核心与实践》 第五篇:Python与QML深度融合——数据绑定与交互
开发语言·python·qt·ui·交互·雷达电子战系统仿真
北冥有羽Victoria2 小时前
Django Auth组件完整版教程:从原理到项目落地
大数据·服务器·数据库·后端·python·django·sqlite
斯维赤2 小时前
Python学习超简单第八弹:网络编程
网络·python·学习
wengqidaifeng3 小时前
C++从菜鸟到强手:1.基础入门
开发语言·c++
我喜欢山,也喜欢海3 小时前
Java和go在并发上的表现为什么不一样
java·python·golang