fetchPypi 无法获取正确的 url 来加载 .whl 文件来构建包

问题描述 投票:0回答:1

我已经遵循了这些说明(段落:从源代码构建):

{
  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 {
      pname = "xTuring";
      version = "v0.1.6";
      format = "wheel";

    src = pkgs.python3Packages.fetchPypi rec {
        inherit pname version format;
        sha256 = "a9e78c46b807f3a14f567e151feaed993085dad601a5b5826db258afd8699914"; 
        dist = python;
        python = "py3";
        #abi = "none";
        #platform = "any";
      };

      #propagatedBuildInputs = with python; [ setproctitle ];
    };

        
        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;
        };
      });
}

错误信息:

尝试 https://files.pythonhosted.org/packages/py3/x/xTuring/xTuring-v0.1.6-py3-none-any.whl 布拉布拉 失败

这是正常的包页面说url应该是https://files.pythonhosted.org/packages/7e/c5/f38749c4f5121fdd79e669f0e39d8c5f03949cbcc57ff4ffc8f4d56a0dcc/xturing-0.1.6-py3-none-any。哇
而不是

https://files.pythonhosted.org/packages/py3/x/xTuring/xTuring-v0.1.6-py3-none-any.whl

我已按照说明进行操作,为什么 fetchPypi 无法获取正确的 URL

python nix nix-flake
1个回答
0
投票

问题的产生是因为 (1) 包名称应该是

xturing
而不是
xTuring
(大写),以及 (2) 版本应该是
0.1.6
而不是
v0.1.6
。如 PyPi URL 所示:

https://files.pythonhosted.org/packages/7e/c5.../xturing-0.1.6-py3-none-any.whl

文件名中没有大写字母,版本号前面也没有“v”。

因此您应该将源获取参数更正为

pname = "xturing";
version = "0.1.6";
format = "wheel";
src = pkgs.python3Packages.fetchPypi rec {
  inherit pname version format;
  sha256 = pkgs.lib.fakeSha256;
  dist = python;
  python = "py3";
};
© www.soinside.com 2019 - 2024. All rights reserved.