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

使用Nix从GitHub构建xTuring Python包遇404源码下载失败问题

Nix Flake构建Python环境时xTuring 0.16源码下载404问题排查

问题背景

指定stochasticai/xTuring仓库的0.16版本,使用Nix Flake构建Python开发环境时,出现源码下载失败的错误,请求返回404状态码。相关Flake配置及错误日志如下:

Flake配置代码

{
  description = "virtual environment with python and streamlit";
  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;

        xTuring = pkgs.python3Packages.buildPythonPackage rec {
          name = "xTuring";
          version = "0.16";

          src = pkgs.fetchFromGitHub {
            owner = "stochasticai";
            repo = "${name}";
            rev = "${version}";
            #sha256 = "1ibrwal80z27c2mh9hx85idmzilx6cpcmgc15z3lyz57bz0krigb";
          };
        };

        f = ps: with ps;[
          ipython
          matplotlib
          pandas
        ];        
        pip_python_packages= python.withPackages(f);

        myDevTools = [
          pip_python_packages
          pkgs.streamlit
          xTuring
        ];
      in rec {
        devShells.default = pkgs.mkShell {
          buildInputs = myDevTools;
        };
      });
}

错误日志

warning: found empty hash, assuming 'sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='
error: builder for '/nix/store/lnpnyfdq132wl3g82h66v8qldg2mnbw0-source.drv' failed with exit code 1;
last 8 log lines:
>
> trying https://github.com/stochasticai/xTuring/archive/0.16.tar.gz
>   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                  Dload  Upload   Total   Spent    Left  Speed
>   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
>   0    14    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
> curl: (22) The requested URL returned error: 404
> error: cannot download source from any mirror
For full logs, run 'nix log /nix/store/lnpnyfdq132wl3g82h66v8qldg2mnbw0-source.drv'.
error: 1 dependencies of derivation '/nix/store/p90maxb3jvyry1m57zypil2ybq1ssbvx-python3.10-xTuring.drv' failed to build
error: 1 dependencies of derivation '/nix/store/3ad8nfn68zljv1rnrzh2665s7yz7fg0p-nix-shell-env.drv' failed to build

问题原因

xTuring仓库的版本标签带有v前缀(比如0.16版本对应的标签是v0.16),但配置中直接使用0.16作为rev参数,GitHub找不到无v前缀的标签归档,因此返回404错误。

解决方案

1. 修正版本标签前缀

将fetchFromGitHub中的rev改为带v前缀的版本号:

rev = "v${version}";

2. 补充正确的SHA256哈希

取消注释sha256行,执行以下命令获取正确的哈希值:

nix-prefetch-github stochasticai xTuring v0.16

将返回的哈希值替换配置中的占位值。

修改后的完整配置示例

{
  description = "virtual environment with python and streamlit";
  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;

        xTuring = pkgs.python3Packages.buildPythonPackage rec {
          name = "xTuring";
          version = "0.16";

          src = pkgs.fetchFromGitHub {
            owner = "stochasticai";
            repo = "${name}";
            rev = "v${version}";
            sha256 = "0xq3i8z0s9y1w2x3e4r5t6y7u8i9o0p1a2s3d4f5g6h7j8k9l0"; # 替换为实际获取的哈希
          };
        };

        f = ps: with ps;[
          ipython
          matplotlib
          pandas
        ];        
        pip_python_packages= python.withPackages(f);

        myDevTools = [
          pip_python_packages
          pkgs.streamlit
          xTuring
        ];
      in rec {
        devShells.default = pkgs.mkShell {
          buildInputs = myDevTools;
        };
      });
}

内容的提问来源于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.07.15 06:25:17