【问题标题】:Nix Flake get a specific python versionNix Flake 获取特定的 python 版本
【发布时间】:2021-08-02 17:17:35
【问题描述】:

我正在尝试制作一个 Nix 薄片,它将使用poet2nix 来构建一个诗歌项目,代码是

{
 description = "searx : flake";

  inputs.nixpkgs.url = github:NixOS/nixpkgs/nixos-20.03;

  outputs = { self, nixpkgs }: {

    defaultPackage.x86_64-linux =
      with import nixpkgs { system = "x86_64-linux";
      buildInputs = [
      nixpkgs.python39
      nixpkgs.git
      nixpkgs.openssl
      nixpkgs.python39Packages.pip
      nixpkgs.uwsgi
      nixpkgs.python39Packages.virtualenv
      nixpkgs.poetry
     ];
 };


pkgs.poetry2nix.mkPoetryApplication {
  projectDir = ./.;
      src = pkgs.fetchgit {
        url = "https://github.com/searx/searx.git";
        rev = "ae122ea943f77600fd97556503c483dcd92e1e63";
        sha256 = "sIJ+QXwUdsRIpg6ffUS3ItQvrFy0kmtI8whaiR7qEz4=";
      };


};
  };

然而 Nix flake 开始拉 python3.7 并因以下错误而中断

ERROR: Could not find a version that satisfies the requirement importlib-metadata; python_version < "3.8" (from click==8.0.1) (from versions: none)
       > ERROR: No matching distribution found for importlib-metadata; python_version < "3.8" (from click==8.0.1)

等效的 default.nix 拉取 python 3.9 并成功构建。我相信如果 flake 可以固定到 python3.9 它将能够构建它。这可能吗?

【问题讨论】:

    标签: nix


    【解决方案1】:

    你可以传递另一个pythonto mkPoetryApplication

    pkgs.poetry2nix.mkPoetryApplication {
      projectDir = ./.;
      python = pkgs.python39;
      # ... your code ...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-12-20
      • 2010-10-20
      • 2010-10-19
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多