【2026最新】PyCharm+Ollama本地部署大模型:从零安装到Python调用全流程(图文版)

【2026最新】PyCharm+Ollama本地部署大模型:从零安装到Python调用全流程(图文版)

【2026最新】PyCharm+Ollama本地部署大模型:从零安装到Python调用全流程(图文版

文章目录

一、前言

为什么现在必须学会本地部署?

2026年,大模型已经不再是实验室里的玩具,而是程序员、产品经理、甚至学生党日常工作的标配。但问题来了——

ChatGPT Plus 20美元/月,Claude Pro 更贵,API 调用按token计费,稍微用多了月底账单触目惊心。

更头疼的是:公司数据不敢上传公网、网络不稳定时AI罢工、想微调模型发现云端成本太高……

如果你也遇到过这些场景,本地部署大模型就是2026年最值得掌握的技能


Ollama 是什么?

Ollama 是2024-2025年最火的本地大模型管理工具,被开发者称为"大模型的 Docker"。它的核心优势就三点:

优势说明
一键运行一条命令下载+启动模型,无需配置 CUDA、PyTorch 环境
API 兼容接口格式与 OpenAI 完全一致,现有代码无缝迁移
生态丰富支持 Llama、Qwen、DeepSeek、Mistral 等主流模型,从 0.5B 到 70B 任选

简单说:以前本地跑大模型要折腾一整天,现在 5 分钟搞定。


你能获得什么?

  1. 完整的本地 AI 开发环境 —— Ollama 安装配置、模型管理、显存优化
  2. PyCharm 中的可运行代码 —— 从简单调用到封装成类,直接复制粘贴可用
  3. 零成本的私有化 AI 助手 —— 断网可用、数据不出本地、永久免费

最终效果:

在 PyCharm 里写几行 Python 代码,调用本地部署的 deepseek-r1:7b 模型,秒级响应,中文对话流畅,全程不花一分钱。

阅读提示

本文假设你已安装 Python 和 PyCharm(如果还没,先看我的[环境配置篇](【2025最新】如何开启你的Python之旅?Python解释器+PyCharm编辑器+Anaconda虚拟环境配置全流程一站式概括!_pycharm anaconda2025-ZEEKLOG博客))。全程在 Windows 演示,Mac/Linux 命令基本一致。

预计操作时间:20-30 分钟

二、Ollama 安装与配置

下载安装

    1. Win + S 可以快速打开搜索功能,输入PowerShell

Windows/Mac/Linux 一键安装

No.1 指令安装

irm https://ollama.com/install.ps1 |iex

官网:Ollama官网

Ollama主页
搜索Powershell

安装好后可以看到右下角任务栏有个小羊驼

小羊驼

复制上面的指令,输入到PowerShell窗口中

命令下载Ollama

No.2 使用安装包安装

  1. 点击Install进行安装

点击蓝字download Ollama下载安装包

安装包下载
安装
  1. 等待安装,直至出现对话框即安装完成
聊天框

验证安装:**Win + R** 打开命令窗口,输入:ollama --version如果出现版本号,如下图,即安装成功

验证安装

环境变量配置(Windows重点)

  • 修改模型下载路径(默认C盘易满)
    1. 打开环境变量设置
  • Win + S 搜索"环境变量"

配置 OLLAMA_MODELS 指向其他盘

通过系统设置

搜索环境变量
  • 点击"编辑系统环境变量" → "环境变量"按钮
在这里插入图片描述
  1. 新建系统变量
  • 在"系统变量"区域点击"新建"
在这里插入图片描述
  • 变量名OLLAMA_MODELS
  • 变量值D:\Ollama\Models(修改为你想要的路径,确保磁盘有足够空间)注意保证你路径指向的文件夹存在,即先在盘中创建好文件夹在引用该地址
在这里插入图片描述


在这里插入图片描述
 - 点击"确定"保存 
  1. 重启生效
    • 完全退出 Ollama(右键任务栏图标 → Quit)
    • 重新启动 Ollama

三、 启动服务(找自己电脑系统的来看)

Windows 系统

方法一:图形界面启动(推荐新手)

  1. 点击开始菜单 → 找到 Ollama → 点击启动
  2. 系统托盘会出现 🦙 羊驼图标,表示服务正在运行
  3. 首次启动会自动在后台运行服务
在这里插入图片描述

方法二:命令行启动

用前面的方法,打开powershell窗口

# 前台运行(调试用,窗口关闭则服务停止) ollama serve # 后台运行(PowerShell 退出仍保持运行)Start-Process ollama -ArgumentList "serve"-WindowStyle Hidden # 或使用 CMDstart/B ollama serve 

方法三:注册为 Windows 服务(开机自启)

No.1 用前面的方法,打开powershell窗口

# 使用 nssm 工具(需先下载 https://nssm.cc/download) nssm install Ollama # 在弹窗中配置:# Path: C:\Users\<用户名>\AppData\Local\Programs\Ollama\ollama.exe# Arguments: serve# 点击 Install service# 启动服务 nssm start Ollama # 设置开机自启 nssm set Ollama Start SERVICE_AUTO_START 

No.2 使用设置完成自启动开启

第一步:Win + i打开设置,搜索:启动应用

在这里插入图片描述

第二步:找到Ollama并勾选启动

在这里插入图片描述

macOS 系统

方法一:应用启动(推荐)

  1. 打开 启动台 → 找到 Ollama 应用 → 点击启动
  2. 菜单栏右上角出现 🦙 图标表示运行中
  3. 首次启动会自动配置后台服务

方法二:命令行启动

# 前台运行(当前终端窗口) ollama serve # 后台运行(推荐)nohup ollama serve > /tmp/ollama.log 2>&1&# 或使用 brew 服务管理(如果通过 Homebrew 安装) brew services start ollama 

方法三:使用 launchctl 管理(系统级服务)

# 创建 plist 配置文件cat> ~/Library/LaunchAgents/com.ollama.ollama.plist <<'EOF' <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.ollama.ollama</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/ollama</string> <string>serve</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>StandardOutPath</key> <string>/tmp/ollama.out</string> <key>StandardErrorPath</key> <string>/tmp/ollama.err</string> </dict> </plist> EOF# 加载并启动服务 launchctl load ~/Library/LaunchAgents/com.ollama.ollama.plist launchctl start com.ollama.ollama # 查看状态 launchctl list |grep ollama 

方法四:Apple Silicon (M1/M2/M3) 特别优化

# 确保使用 ARM 原生版本(非 Rosetta) arch -arm64 ollama serve # 查看架构信息file$(which ollama)# 应输出:Mach-O 64-bit executable arm64

Linux 系统

方法一: systemd 服务管理(推荐)

# 1. 创建服务文件sudotee /etc/systemd/system/ollama.service > /dev/null <<'EOF' [Unit] Description=Ollama Service After=network-online.target [Service] ExecStart=/usr/local/bin/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=$PATH" Environment="OLLAMA_MODELS=/var/lib/ollama/models" # 可选:自定义模型路径 [Install] WantedBy=default.target EOF# 2. 创建用户(可选,推荐)sudouseradd-r-s /bin/false -m-d /usr/share/ollama ollama # 3. 重载并启动服务sudo systemctl daemon-reload sudo systemctl enable ollama sudo systemctl start ollama # 4. 查看状态sudo systemctl status ollama 

常用命令:

# 启动/停止/重启sudo systemctl start ollama sudo systemctl stop ollama sudo systemctl restart ollama # 查看日志sudo journalctl -u ollama -f# 开机自启sudo systemctl enable ollama 

方法二:Docker 部署

# 拉取镜像docker pull ollama/ollama # 运行容器(CPU 版本)docker run -d-v ollama:/root/.ollama -p11434:11434 --name ollama ollama/ollama # 运行容器(NVIDIA GPU 版本)docker run -d--gpus=all -v ollama:/root/.ollama -p11434:11434 --name ollama ollama/ollama # 进入容器执行命令dockerexec-it ollama ollama run llama3.2 

方法三:手动启动(开发测试)

# 前台运行 ollama serve # 后台运行(传统方式)nohup ollama serve > /var/log/ollama.log 2>&1&# 使用 screen/tmux 保持会话 tmux new -s ollama -d'ollama serve'

方法四:不同发行版特定安装

Ubuntu/Debian:

# 一键安装脚本curl-fsSL https://ollama.com/install.sh |sh# 安装后自动配置 systemd 服务sudo systemctl status ollama 

CentOS/RHEL/Fedora:

# 安装依赖sudo yum install-y systemd # 使用官方脚本安装curl-fsSL https://ollama.com/install.sh |sh# 或手动安装后配置服务(见方法一)

Arch Linux:

# 使用 AUR yay -S ollama sudo systemctl enable--now ollama 

验证服务状态(三系统通用)

# 1. 查看版本(确认安装成功) ollama --version# 输出:ollama version 0.5.7# 2. 查看服务状态(列出本地模型) ollama list # 输出示例:# NAME ID SIZE MODIFIED# deepseek-r1:7b ea35dfe18182 4.7 GB 2 hours ago# 3. 查看运行中的模型 ollama ps# 输出示例:# NAME ID SIZE PROCESSOR UNTIL# deepseek-r1:7b ea35dfe18182 5.2 GB 100% GPU 3 minutes from now# 4. 测试 API 接口(curl 方式)curl http://localhost:11434/api/tags # 应返回 JSON 格式的模型列表

常见问题排查

现象诊断命令解决方案
端口被占用lsof -i :11434 (Mac/Linux) `netstat -anofindstr 11434` (Win)
权限不足sudo systemctl status ollama检查用户权限,使用 sudo
GPU 未识别ollama ps 显示 CPU安装 NVIDIA 驱动/CUDA
服务无法启动查看系统日志重新安装或检查端口冲突

四、模型下载与管理

查看可用模型

访问 Ollama 官方模型库 浏览所有支持的模型:

模型系列推荐版本显存需求适用场景
DeepSeek-R17B/14B8GB/16GB推理能力强,中文表现优秀
Qwen2.57B/14B8GB/16GB阿里云出品,中文优化好
Llama 3.23B/8B4GB/8GBMeta 官方,英文能力强
Phi-414B16GB微软出品,代码能力强
Gemma 29B/27B8GB/24GBGoogle 出品,轻量高效
选型建议:显存 8GB 选 7B 模型,16GB 选 14B 模型,先跑起来再升级
在这里插入图片描述

下载模型

这里用deepseek-r1:7b做示例

# 格式:ollama pull <模型名>:<参数规模> ollama pull deepseek-r1:7b 
在这里插入图片描述

模型管理常用命令

# 列出本地已下载的模型 ollama list # 运行模型(交互式对话) ollama run deepseek-r1:7b # 删除模型释放空间 ollama rm deepseek-r1:7b # 查看模型信息 ollama show deepseek-r1:7b # 复制模型(创建自定义版本) ollama cp deepseek-r1:7b my-model:latest 

运行模型测试

# 启动交互式对话 ollama run deepseek-r1:7b 

出现 >>> 提示符后即可输入对话

在这里插入图片描述

五、Pycharm集成开发⭐

进行到这里,想必大家的电脑里面已经安装好了Ollama并且下载了心仪的大模型,在python项目中通过Ollama接口调用大模型可以拓展出很多奇思妙想的工程,比如一个专属于自己的LLM对话前端、一个AI交互项目等,都可以通过这块的内容来完成,那么开始本篇最核心的内容吧!

使用 Conda 创建虚拟环境并配置依赖包

这方面的内容可以参考上一篇的内容【2025最新】如何开启你的Python之旅?Python解释器+PyCharm编辑器+Anaconda虚拟环境配置全流程一站式概括!_pycharm2025环境配置anaconda-ZEEKLOG博客

打开 Anaconda Prompt(或终端)

# 查看现有环境 conda env list # 创建新环境(Python 3.10 兼容性好) conda create -n ollama-dev python==3.10# 激活环境 conda activate ollama-dev # 安装核心库 pip install ollama openai requests -i https://pypi.tuna.tsinghua.edu.cn/simple # 安装辅助库(可选但推荐) pip install python-dotenv rich colorama -i https://pypi.tuna.tsinghua.edu.cn/simple 

包说明

包名作用
ollama官方 Python SDK,调用本地模型
openaiOpenAI 兼容接口,方便迁移现有项目
requests底层 HTTP 调用
python-dotenv管理环境变量(如 API Key)
rich美化终端输出(彩色、表格、Markdown)
coloramaWindows 终端颜色支持

配置好环境,我们以视觉模型YOLO检测结果为模拟输入,让大模型deepseek-r1:7b完成对检测结果的分析

项目结构

ollama-yolo/ ├── ollama_client.py # 核心调用模块 └── main_demo.py # 演示入口 

1. 核心调用代码(ollama_client.py)

# ollama_client.pyfrom openai import OpenAI import re defask_ollama(prompt, model="deepseek-r1:7b", system_prompt=None, temperature=0.7):""" 调用本地Ollama模型回答问题 Args: prompt: 用户问题 model: 模型名称,默认deepseek-r1:7b system_prompt: 系统提示词 temperature: 创造性(0-1) Returns: 模型回答的纯文本 """ client = OpenAI( base_url="http://localhost:11434/v1", api_key="ollama"# 必填但任意值都行) messages =[]if system_prompt: messages.append({"role":"system","content": system_prompt}) messages.append({"role":"user","content": prompt}) response = client.chat.completions.create( model=model, messages=messages, temperature=temperature, stream=False)return response.choices[0].message.content defextract_answer(text):""" 提取DeepSeek-R1的回答(去除思考过程) 思考过程在<think>...</think>或思考...最终答案格式中 """# 尝试匹配 <think> 标签if"<think>"in text and"</think>"in text:# 返回</think>之后的内容return text.split("</think>")[-1].strip()# 尝试匹配 思考...最终答案 格式 pattern = re.compile(r'(?:思考|推理).*?(?:最终答案|回答|结论)[::]\s*(.*)', re.S)match= pattern.search(text)ifmatch:returnmatch.group(1).strip()# 默认返回原文return text.strip()# ========== YOLO检测专用封装 ==========defanalyze_yolo_result(detection_info, model="deepseek-r1:7b"):""" 分析YOLO检测结果,给出处理建议 Args: detection_info: YLO输出的检测信息(类别、置信度、位置等) model: 使用的模型 Returns: 处理建议文本 """ system_prompt ="""你是农业病虫害识别专家。根据YOLO模型的检测结果,分析病害类型和严重程度,给出具体的处理建议。 要求: 1. 直接给出可执行的处理措施 2. 区分紧急程度和一般建议 3. 如有多种病害,分别说明""" user_prompt =f"""YOLO检测结果: {detection_info} 请分析上述检测结果,给出针对性的处理建议。""" raw_answer = ask_ollama( prompt=user_prompt, model=model, system_prompt=system_prompt, temperature=0.3# 较低温度,更确定性的回答)# 清理思考过程,返回纯净答案return extract_answer(raw_answer)defquick_chat(message, model="qwen2.5:7b"):"""快速对话,无需系统提示词"""return ask_ollama(message, model=model)

2. 演示入口(main_demo.py)

# main_demo.pyfrom ollama_client import ask_ollama, extract_answer, analyze_yolo_result, quick_chat defdemo_yolo_analysis():"""演示:YOLO检测结果分析"""print("="*50)print("YOLO检测结果智能分析演示")print("="*50)# 模拟YOLO输出格式 yolo_result =""" 检测时间: 2026-03-08 14:30:22 图像尺寸: 1920x1080 [0] 类别: rice_blast(稻瘟病), 置信度: 0.89, 位置: [450, 320, 680, 550] [1] 类别: rice_blast(稻瘟病), 置信度: 0.76, 位置: [820, 410, 950, 580] [2] 类别: bacterial_blight(白叶枯病), 置信度: 0.65, 位置: [1200, 600, 1350, 780] 总计: 3处病灶,主要病害为稻瘟病 """print("\n 输入的检测信息:")print(yolo_result)print("\n 模型分析中...(请确保Ollama服务已启动)\n") advice = analyze_yolo_result(yolo_result)print(" 处理建议:")print("-"*50)print(advice)print("-"*50)defdemo_simple_chat():"""演示:简单对话"""print("\n"+"="*50)print(" 快速对话演示")print("="*50) questions =["Python中如何实现单例模式?","解释什么是过拟合","写一句新年祝福语"]for q in questions:print(f"\n 问: {q}") answer = quick_chat(q, model="qwen2.5:7b")print(f" 答: {answer[:200]}..."iflen(answer)>200elsef"🤖 答: {answer}")defdemo_raw_vs_clean():"""演示:原始输出 vs 清理后的输出"""print("\n"+"="*50)print(" DeepSeek-R1 思考过程提取演示")print("="*50)# 使用DeepSeek-R1获取带思考过程的回答 raw = ask_ollama( prompt="1+1等于几?请一步步思考", model="deepseek-r1:7b", temperature=0.1)print("\n 原始输出(含思考过程):")print("-"*50)print(raw[:500]+"..."iflen(raw)>500else raw)print("\n 清理后(仅最终答案):")print("-"*50) clean = extract_answer(raw)print(clean)if __name__ =="__main__":print(" Ollama Python调用演示")print("请确保:1. Ollama已启动 2. 模型已下载\n")try:# 运行YOLO分析演示(核心功能) demo_yolo_analysis()# 其他演示(可选)# demo_simple_chat()# demo_raw_vs_clean()except Exception as e:print(f"\n 错误: {str(e)}")print(" 提示: 请运行 'ollama serve' 启动服务")print(" 或检查模型是否已下载: ollama list")

运行main_demo.py你可以看到如下效果:

在这里插入图片描述

六、总结与下一步

本文回顾

通过本教程,你已经完成了:

  1. Ollama 安装与配置 —— 一键部署本地大模型服务
  2. 模型下载与管理 —— 使用 deepseek-r1:7b 等主流模型
  3. PyCharm 环境搭建 —— Conda 虚拟环境 + 依赖安装
  4. Python 代码调用 —— OpenAI 兼容接口,简洁封装
  5. 实际场景落地 —— YOLO 检测结果智能分析

核心成果:一行代码调用本地大模型,零成本、可离线、数据安全。


核心代码速查(复制即用)

from openai import OpenAI client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama") response = client.chat.completions.create( model="deepseek-r1:7b", messages=[{"role":"user","content":"你的问题"}], temperature=0.7)print(response.choices[0].message.content)

常见问题速查

问题现象原因解决方案
Connection refusedOllama 服务未启动点击托盘图标或运行 ollama serve
model not found模型未下载运行 ollama pull deepseek-r1:7b
显存不足 / 运行卡顿GPU 内存不够换更小模型:deepseek-r1:1.5bqwen2.5:3b
中文显示乱码终端编码问题PyCharm 右下角改为 UTF-8
响应速度慢CPU 运行模式检查 ollama ps 是否显示 GPU

下一步可以做什么?

接入真实项目

demo_yolo_analysis() 中的模拟数据换成真实 YOLO 输出:

# 接入YOLO检测代码from ultralytics import YOLO model = YOLO('best.pt') results = model('rice_leaf.jpg') advice = analyze_yolo_result(results[0].boxes.data)

做个 Web 界面

pip install gradio 
import gradio as gr demo = gr.Interface(fn=analyze_yolo_result, inputs="text", outputs="text") demo.launch()

尝试其他模型

场景推荐模型下载命令
代码生成DeepSeek-Coderollama pull deepseek-coder:6.7b
多模态(图文)LLaVAollama pull llava:7b
超轻量(低配置)Phi-3 Miniollama pull phi3:3.8b
中文对话Qwen2.5ollama pull qwen2.5:14b

学习进阶技术

  • RAG 检索增强:给模型接入本地知识库(农业病虫害手册、产品说明书)
  • Agent 智能体:让模型调用工具(查天气、算数据、发邮件)
  • 模型量化:用 ollama run qwen2.5:7b-q4_K_M 降低显存占用

最后的话

本地部署大模型不是终点,而是私有化 AI 应用的起点

相比于调用云端 API,Ollama 方案的优势在于:

  • 零成本:没有 Token 费用,用多少都不心疼
  • 低延迟:本地运行,响应速度通常在 100ms-2s
  • 高隐私:数据不出本机,适合企业敏感场景
  • 可定制:后续可微调自己的专属模型
建议:先用本文代码跑通第一个 Demo,再逐步替换为你的实际业务数据。AI 应用开发的核心不是调参,而是找到真实场景,快速验证价值

相关阅读


如果本文对你有帮助,欢迎点赞收藏!有问题评论区留言,看到必回。

Read more

Neo4j 知识讲解与在线工具使用教程

图数据库领域的核心工具 ——Neo4j,同时详细拆解其在线预览控制台(https://console-preview.neo4j.io/)的使用方法,以及查询工具(https://console-preview.neo4j.io/tools/query)的模块功能。 一、Neo4j 核心知识铺垫 在使用工具前,我们需要先理解 Neo4j 的本质和核心概念,这是后续操作的基础。 1. 什么是 Neo4j? Neo4j 是世界上最流行的原生图数据库(Native Graph Database),专门用于存储、查询和分析 “实体之间的关联关系”。它与我们熟悉的 MySQL 等关系型数据库的核心差异的是: * 关系型数据库(MySQL):用 “表 + 行 + 外键” 间接表示关联,查询多表关联时需频繁 JOIN,效率低; * 图数据库(Neo4j)

By Ne0inhk
【无人机】无人机路径规划算法

【无人机】无人机路径规划算法

目录 一、引言:无人机与路径规划算法 二、路径规划算法基础 (一)定义与重要性 (二)规划目标与约束条件 三、常见路径规划算法详解 (一)A * 算法 (二)Dijkstra 算法 (三)RRT(快速扩展随机树)算法 (四)蚁群算法 四、算法应用实例与效果展示 (一)不同场景下的算法应用 (二)算法性能对比数据 五、算法的优化与发展趋势 (一)现有算法的优化策略 (二)结合新技术的发展方向 六、挑战与展望 (一)面临的技术挑战 (二)未来应用前景 七、结论 一、引言:无人机与路径规划算法 在科技飞速发展的今天,无人机作为一种极具创新性的技术产物,已深度融入我们生活的方方面面,

By Ne0inhk

简单理解:单片机怎么和FPGA通信

了解单片机与 FPGA 之间的通信方式,这是嵌入式系统中非常常见的硬件交互场景,核心是要根据传输速率、硬件资源、开发复杂度选择合适的通信协议。 一、主流通信方式及实现方案 单片机和 FPGA 通信主要分为并行通信和串行通信两大类,下面按从易到难、从低速到高速的顺序介绍: 1. 通用 IO 口(GPIO)自定义协议(最简单) 适合低速、短距离、数据量小的场景(如按键、状态交互),完全自定义通信规则,开发灵活。 * 硬件连接: * 单片机:1 个输出引脚(发送) + 1 个输入引脚(接收) * FPGA:1 个输入引脚(接收) + 1 个输出引脚(发送) * 需共地,建议加 10K 上拉电阻提高稳定性。 * 单片机端(C 语言,

By Ne0inhk