【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 分钟搞定。
你能获得什么?
- 完整的本地 AI 开发环境 —— Ollama 安装配置、模型管理、显存优化
- PyCharm 中的可运行代码 —— 从简单调用到封装成类,直接复制粘贴可用
- 零成本的私有化 AI 助手 —— 断网可用、数据不出本地、永久免费
最终效果:
在 PyCharm 里写几行 Python 代码,调用本地部署的 deepseek-r1:7b 模型,秒级响应,中文对话流畅,全程不花一分钱。
阅读提示
本文假设你已安装 Python 和 PyCharm(如果还没,先看我的[环境配置篇](【2025最新】如何开启你的Python之旅?Python解释器+PyCharm编辑器+Anaconda虚拟环境配置全流程一站式概括!_pycharm anaconda2025-ZEEKLOG博客))。全程在 Windows 演示,Mac/Linux 命令基本一致。
预计操作时间:20-30 分钟
二、Ollama 安装与配置
下载安装
- Win + S 可以快速打开搜索功能,输入PowerShell
Windows/Mac/Linux 一键安装
No.1 指令安装
irm https://ollama.com/install.ps1 |iex官网:Ollama官网
安装好后可以看到右下角任务栏有个小羊驼
复制上面的指令,输入到PowerShell窗口中
No.2 使用安装包安装
- 点击
Install进行安装
点击蓝字download Ollama下载安装包
- 等待安装,直至出现对话框即安装完成
验证安装:**Win + R** 打开命令窗口,输入:ollama --version如果出现版本号,如下图,即安装成功
环境变量配置(Windows重点)
- 修改模型下载路径(默认C盘易满)
- 打开环境变量设置
- 按
Win + S搜索"环境变量"
配置 OLLAMA_MODELS 指向其他盘
通过系统设置
- 点击"编辑系统环境变量" → "环境变量"按钮
- 新建系统变量
- 在"系统变量"区域点击"新建"
- 变量名:
OLLAMA_MODELS - 变量值:
D:\Ollama\Models(修改为你想要的路径,确保磁盘有足够空间)注意保证你路径指向的文件夹存在,即先在盘中创建好文件夹在引用该地址
- 点击"确定"保存 - 重启生效
- 完全退出 Ollama(右键任务栏图标 → Quit)
- 重新启动 Ollama
三、 启动服务(找自己电脑系统的来看)
Windows 系统
方法一:图形界面启动(推荐新手)
- 点击开始菜单 → 找到 Ollama → 点击启动
- 系统托盘会出现 🦙 羊驼图标,表示服务正在运行
- 首次启动会自动在后台运行服务
方法二:命令行启动
用前面的方法,打开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 系统
方法一:应用启动(推荐)
- 打开 启动台 → 找到 Ollama 应用 → 点击启动
- 菜单栏右上角出现 🦙 图标表示运行中
- 首次启动会自动配置后台服务
方法二:命令行启动
# 前台运行(当前终端窗口) 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 arm64Linux 系统
方法一: 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 -ano | findstr 11434` (Win) |
| 权限不足 | sudo systemctl status ollama | 检查用户权限,使用 sudo |
| GPU 未识别 | ollama ps 显示 CPU | 安装 NVIDIA 驱动/CUDA |
| 服务无法启动 | 查看系统日志 | 重新安装或检查端口冲突 |
四、模型下载与管理
查看可用模型
访问 Ollama 官方模型库 浏览所有支持的模型:
| 模型系列 | 推荐版本 | 显存需求 | 适用场景 |
|---|---|---|---|
| DeepSeek-R1 | 7B/14B | 8GB/16GB | 推理能力强,中文表现优秀 |
| Qwen2.5 | 7B/14B | 8GB/16GB | 阿里云出品,中文优化好 |
| Llama 3.2 | 3B/8B | 4GB/8GB | Meta 官方,英文能力强 |
| Phi-4 | 14B | 16GB | 微软出品,代码能力强 |
| Gemma 2 | 9B/27B | 8GB/24GB | Google 出品,轻量高效 |
选型建议:显存 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,调用本地模型 |
openai | OpenAI 兼容接口,方便迁移现有项目 |
requests | 底层 HTTP 调用 |
python-dotenv | 管理环境变量(如 API Key) |
rich | 美化终端输出(彩色、表格、Markdown) |
colorama | Windows 终端颜色支持 |
配置好环境,我们以视觉模型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你可以看到如下效果:
六、总结与下一步
本文回顾
通过本教程,你已经完成了:
- Ollama 安装与配置 —— 一键部署本地大模型服务
- 模型下载与管理 —— 使用
deepseek-r1:7b等主流模型 - PyCharm 环境搭建 —— Conda 虚拟环境 + 依赖安装
- Python 代码调用 —— OpenAI 兼容接口,简洁封装
- 实际场景落地 —— 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 refused | Ollama 服务未启动 | 点击托盘图标或运行 ollama serve |
model not found | 模型未下载 | 运行 ollama pull deepseek-r1:7b |
| 显存不足 / 运行卡顿 | GPU 内存不够 | 换更小模型:deepseek-r1:1.5b 或 qwen2.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-Coder | ollama pull deepseek-coder:6.7b |
| 多模态(图文) | LLaVA | ollama pull llava:7b |
| 超轻量(低配置) | Phi-3 Mini | ollama pull phi3:3.8b |
| 中文对话 | Qwen2.5 | ollama pull qwen2.5:14b |
学习进阶技术
- RAG 检索增强:给模型接入本地知识库(农业病虫害手册、产品说明书)
- Agent 智能体:让模型调用工具(查天气、算数据、发邮件)
- 模型量化:用
ollama run qwen2.5:7b-q4_K_M降低显存占用
最后的话
本地部署大模型不是终点,而是私有化 AI 应用的起点。
相比于调用云端 API,Ollama 方案的优势在于:
- 零成本:没有 Token 费用,用多少都不心疼
- 低延迟:本地运行,响应速度通常在 100ms-2s
- 高隐私:数据不出本机,适合企业敏感场景
- 可定制:后续可微调自己的专属模型
建议:先用本文代码跑通第一个 Demo,再逐步替换为你的实际业务数据。AI 应用开发的核心不是调参,而是找到真实场景,快速验证价值。
相关阅读
- 【2025最新】Python解释器+PyCharm编辑器+Anaconda虚拟环境配置全流程一站式概括! —— 环境配置基础篇
- Ollama 官方文档 —— 进阶配置参考
- OpenAI API 文档 —— 接口格式说明
如果本文对你有帮助,欢迎点赞收藏!有问题评论区留言,看到必回。