我已经遵循了这些说明(段落:从源代码构建):
{
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
问题的产生是因为 (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";
};