You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整Nix Flake配置以运行依赖Ollama的Python脚本?

解决Ollama+LangChain在Nix开发环境中端口11434连接拒绝的问题

问题场景

已通过Nix Flake创建包含Ollama和LangChain的Python开发环境,执行nix develop后环境正常,但运行依赖Ollama的Python脚本c.py时,出现localhost端口11434连接拒绝错误。

涉及代码与配置

c.py脚本

from langchain_community.llms import Ollama
llm = Ollama(model="llama2")
llm.invoke("Tell me a joke")

Nix Flake配置

{
 description = "Python environment with ollama";

 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
 inputs.flake-utils.url = "github:numtide/flake-utils";

 outputs = { self, nixpkgs, flake-utils }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        pkgs = nixpkgs.legacyPackages.${system};
        python = pkgs.python311;
        ollama=pkgs.ollama;
        Py = python.withPackages (ps: with ps; [
          langchain
        ]);
      in {
        devShells.default = pkgs.mkShell {
          buildInputs = [
            ollama
            Py
          ];
        };
      });
}

核心错误信息

requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=11434): Max retries exceeded with url: /api/generate (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ffff4b1d510>: Failed to establish a new connection: [Errno 111] Connection refused'))

解决方案

1. 启动Ollama后台服务

注意:Ollama服务必须处于运行状态,LangChain才能通过11434端口调用其API
Nix仅将Ollama二进制文件加入环境,不会自动启动其后台API服务。在nix develop进入的shell中执行:

ollama serve

保持该终端窗口打开(或用ollama serve &让其后台运行),再打开新终端进入同一shell运行python c.py。

2. 预拉取所需模型

首次使用llama2模型需先拉取到本地,在shell中执行:

ollama pull llama2

拉取完成后再运行脚本即可正常调用模型。

3. 可选:Flake配置自动启动服务(交互式场景)

若希望进入devShell时自动启动Ollama服务,可修改Flake的mkShell部分,添加shellHook:

devShells.default = pkgs.mkShell {
  buildInputs = [
    ollama
    Py
  ];
  shellHook = ''
    # 启动Ollama服务并后台运行
    ollama serve &
    # 可选:等待服务启动完成
    sleep 2
  '';
};

内容的提问来源于stack exchange,提问作者Pierre-olivier Gendraud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 07:27:22