Traceback (most recent call last): File "c:\Users\目成\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\Users\目成\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code exec(code, run_globals) File "c:\Users\目成\.vscode\extensions\ms-python.debugpy-2025.4.1-win32-x64\bundled\libs\debugpy\launcher\__main__.py", line 91, in <module> main() File "c:\Users\目成\.vscode\extensions\ms-python.debugpy-2025.4.1-win32-x64\bundled\libs\debugpy\launcher\__main__.py", line 47, in main launcher.connect(host, port) File "c:\Users\目成\.vscode\extensions\ms-python.debugpy-2025.4.1-win32-x64\bundled\libs\debugpy\launcher/../..\debugpy\launcher\__init__.py", line 27, in connect sock.connect((host, port)) ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。
时间: 2025-06-21 15:25:59 浏览: 16
<think>好的,用户遇到了一个错误:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。他们之前询问如何在Python中使用本地部署的Ollama的DeepSeek模型,现在在执行代码时出现了连接问题。我需要分析这个错误的原因,并提供解决方案。
首先,这个错误通常表示尝试连接的目标端口没有服务在监听。用户使用的是Ollama,默认端口是11434。可能的原因有几个:
1. **Ollama服务未启动**:用户可能没有运行`ollama serve`,或者服务没有正确启动。
2. **端口被防火墙或安全软件阻止**:有时候防火墙设置会阻止本地连接。
3. **代码中的URL或端口错误**:可能用户修改了默认端口,但代码中没有更新。
4. **Ollama未正确安装**:安装过程中可能出现问题,导致服务无法启动。
接下来,我需要逐步引导用户排查这些问题。首先检查Ollama是否安装正确,服务是否运行。可以通过命令行输入`ollama serve`来启动服务,并保持窗口开启。然后,使用`curl http://localhost:11434/api/tags`测试API是否可达,确认服务是否正常运行。
另外,用户可能在VS Code中运行代码,而调试器可能干扰了连接。需要检查是否有其他进程占用了11434端口,或者调试配置是否有误。比如,用户可能在调试时配置了错误的端口,导致连接被拒绝。
还需要确认用户是否在代码中正确指定了Ollama的地址和端口,是否有拼写错误。例如,是否误写成了`http://127.0.0.1:11434`或其他地址。
此外,用户可能在Windows环境下遇到权限问题,需要以管理员身份运行Ollama或代码。或者,防病毒软件阻止了Ollama的运行,需要暂时禁用防火墙测试。
最后,如果以上步骤都确认无误,可能需要重新安装Ollama或检查日志文件,查看更详细的错误信息。用户的代码中已经有预检查服务可用性的部分,但可能在实例化客户端时没有正确处理异常,导致后续调用失败。
总结,解决方案应包括检查服务状态、端口占用、防火墙设置、代码配置,并提供逐步排查的步骤,帮助用户逐一排除可能的原因,确保Ollama服务正常运行,并且Python代码正确连接到本地端口。</think>这个错误提示说明Python程序试图连接某个端口时被拒绝。从代码路径来看,你是在使用VS Code调试Python程序时遇到了调试器连接问题,但结合之前关于Ollama的提问,更可能是Ollama服务未正常运行导致的连接拒绝。以下是分步解决方案:
**第一阶段:基础服务检查**
1. **确认Ollama服务状态**
```bash
# Windows打开PowerShell执行
ollama serve
```
保持这个窗口持续运行(服务会持续监听请求)
2. **验证端口监听状态**
```bash
netstat -ano | findstr ":11434"
```
正常应该看到类似:
`TCP 0.0.0.0:11434 0.0.0.0:0 LISTENING`
3. **快速API测试(新开终端执行)**
```bash
curl http://localhost:11434/api/tags
```
正常响应应包含已下载的模型列表
**第二阶段:深度排查**
4. **防火墙设置检查**
```bash
# 允许Ollama通过防火墙
New-NetFirewallRule -DisplayName "Ollama" -Direction Inbound -Program "C:\Program Files\Ollama\ollama.exe" -Action Allow
```
5. **服务日志分析**(保持ollama serve运行时的日志窗口可见,观察是否有ERROR日志)
6. **进程占用检测**
```bash
# 检查11434端口占用情况(需安装nmap)
nmap -p 11434 localhost
```
正常应显示`11434/tcp open unknown`
**第三阶段:代码适配方案**
在原有代码中增加重试机制:
```python
class OllamaDeepSeekClient:
def __init__(self, base_url="http://localhost:11434", max_retries=3):
self.max_retries = max_retries
# 修改预检查方法
for attempt in range(self.max_retries):
try:
response = requests.get(f"{base_url}/api/tags", timeout=5)
if response.status_code == 200:
print(f"✅ 第{attempt+1}次重试后连接成功")
break
except Exception as e:
if attempt == max_retries -1:
print(f"❌ 超过最大重试次数{max_retries},最终错误:{str(e)}")
exit(1)
print(f"⚠️ 连接失败,5秒后第{attempt+2}次重试...")
time.sleep(5)
```
**典型错误场景解决方案对照表**:
| 现象描述 | 检查位置 | 解决方案 |
|---------|---------|---------|
| 服务启动后立即退出 | 查看ollama serve日志 | 更新显卡驱动,确认支持CUDA 11+ |
| 能连接但提示模型不存在 | 模型管理 | 执行`ollama list`确认模型名称拼写 |
| 间歇性连接失败 | 网络配置 | 在代码中设置`base_url="http://127.0.0.1:11434"` |
| 仅IPv6监听 | 服务配置 | 添加启动参数`OLLAMA_HOST=0.0.0.0 ollama serve` |
**最终验证步骤**:
1. 在PowerShell持续运行`ollama serve`
2. 新开终端执行:`python -c "import requests; print(requests.get('http://localhost:11434').status_code)"`
3. 应输出`200`状态码
如果问题仍未解决,请提供以下信息:
1. Ollama版本号(执行`ollama --version`)
2. 操作系统具体版本(包括是WSL还是原生Windows)
3. 显卡型号及驱动版本
阅读全文
相关推荐






