4、环境准备与依赖安装:Python环境配置、requests库安装、openai库安装、Ollama服务启动与验证
说实话,很多同学在学API对接时,最容易卡住的反而不是代码逻辑,而是环境没搭好。我见过太多人花了两小时调代码,最后发现是Python版本不对,或者Ollama服务根本没起来。所以这一章,咱们把地基打牢。
本章核心目标:在你的机器上搭建一套完整的开发环境,让Python能顺利调用Ollama的API,并且验证整个链路是通的。
4.1 Python环境配置
我个人习惯用Python 3.10以上版本。为什么?因为新版本的openai库对3.8以下的支持已经逐渐弱化了。你在项目中如果遇到SSL证书报错或者某些异步方法找不到,八成是Python版本太老。
第一步:检查当前Python版本
打开你的终端(Windows用CMD或PowerShell,Mac/Linux用Terminal),输入:
python --version
如果显示的是 Python 3.8.x 或更低,我建议你升级。如果你机器上同时有Python2和Python3,可能需要用 python3 --version 来确认。
第二步:创建虚拟环境(强烈推荐)
嗯,这里要注意。千万别把依赖直接装到全局环境里。我曾经有一次把项目A的依赖和项目B的依赖混在一起,结果两个项目都跑不起来,排查了一下午才发现是某个库版本冲突。从那以后,我每个项目都老老实实用虚拟环境。
# 创建虚拟环境
python -m venv ollama_env
# 激活虚拟环境
# Windows:
ollama_env\Scripts\activate
# Mac/Linux:
source ollama_env/bin/activate
激活成功后,你的终端前面会出现 (ollama_env) 字样,这就对了。
小技巧:如果你用的是VS Code,可以直接在项目根目录下创建虚拟环境,VS Code会自动识别并提示你切换解释器。省得每次手动激活。
4.2 安装requests库
requests库是Python世界里最常用的HTTP请求库。虽然openai库内部也封装了请求,但我们在调试时经常需要直接用requests来测试接口通不通。说白了,它就是你的“网络探针”。
安装命令很简单:
pip install requests
验证是否安装成功:
python -c "import requests; print(requests.__version__)"
如果输出版本号,比如 2.31.0,那就没问题。如果报错说找不到模块,检查一下你是不是在虚拟环境里。
避坑指南:我曾经遇到过pip install成功了,但Python里import却报错。后来发现是因为系统里同时装了Python 3.9和3.11,pip默认装到了3.9,而我的虚拟环境用的是3.11。所以安装前一定要确认你激活了正确的虚拟环境。
4.3 安装openai库
openai库是官方提供的Python SDK。但这里有个关键点:Ollama兼容的是OpenAI的接口格式,所以我们直接用openai库,把base_url指向Ollama的地址就行。你想想看,这多方便——代码几乎不用改,换个base_url就能在本地跑大模型。
安装命令:
pip install openai
验证安装:
python -c "import openai; print(openai.__version__)"
目前我推荐使用 openai >= 1.0.0 的版本。1.0版本之后,API的调用方式有了较大变化,更简洁也更统一。如果你用的是旧版本,建议升级:
pip install --upgrade openai
4.4 Ollama服务启动与验证
这是整个环境准备中最关键的一步。Ollama服务没起来,后面所有代码都是白搭。
第一步:启动Ollama服务
如果你是在本地安装的Ollama,通常服务会自动启动。但为了保险起见,我建议手动确认一下:
# 启动Ollama服务(Mac/Linux)
ollama serve
# Windows用户可以在开始菜单找到Ollama,或者用命令行
ollama serve
启动成功后,你会看到类似这样的日志:
INFO[0000] Listening on 127.0.0.1:11434
端口11434就是Ollama的默认监听端口。记住这个端口号,后面配置base_url时会用到。
第二步:拉取一个模型
Ollama本身只是一个框架,你需要拉取具体的模型才能用。我个人习惯先用 llama3.2 或 qwen2.5 这类小模型做测试,速度快,资源占用低。
# 拉取模型(以qwen2.5:1.5b为例)
ollama pull qwen2.5:1.5b
下载完成后,你可以直接测试一下:
ollama run qwen2.5:1.5b "你好,请用一句话介绍自己"
如果模型能正常回复,说明Ollama本身没问题。
第三步:用Python验证接口兼容性
这才是我们这节课的重点。我们要确认openai库能通过Ollama的接口调用模型。写一个简单的测试脚本:
from openai import OpenAI
# 初始化客户端,指向Ollama的地址
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama" # Ollama不验证api_key,但openai库要求必填,随便填一个
)
# 发送请求
response = client.chat.completions.create(
model="qwen2.5:1.5b",
messages=[
{"role": "user", "content": "你好,请用一句话介绍自己"}
]
)
# 打印回复
print(response.choices[0].message.content)
运行这个脚本,如果能看到模型返回的内容,恭喜你——环境搭建成功!
验证成功的标志:终端输出了模型的回复,且没有报错。如果报错,99%的情况是Ollama服务没启动,或者端口写错了。
4.5 知识体系总览
为了让你对整个环境准备有个全局认识,我画了一张流程图。你看一眼就明白各个组件之间的关系了:
这张图其实就说明了一件事:你的Python代码(通过openai库)向Ollama服务发请求,Ollama调用本地模型返回结果。整个链路中,任何一个环节断了,验证脚本都会报错。
4.6 常见问题与排查
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| Connection refused | Ollama服务未启动 | 运行 ollama serve 启动服务 |
| ModuleNotFoundError | 依赖未安装或虚拟环境未激活 | 检查终端是否有 (ollama_env) 前缀 |
| 模型返回乱码 | 模型未正确拉取或版本不兼容 | 重新 ollama pull 指定模型 |
| openai报错404 | base_url路径写错 | 确认是 http://localhost:11434/v1 末尾有 /v1 |
我的经验:如果你在Windows上遇到端口被占用,可以用 netstat -ano | findstr :11434 查看是谁占用了端口。有时候WSL或者Docker也会占用这个端口,改一下Ollama的监听端口就行。
好了,环境准备就到这里。你现在应该已经跑通了第一个测试脚本。记住这个感觉——后面所有的API调用,都是在这个基础上展开的。