t_wの輪郭

Feedlyでフォローするボタン
Nixnix-shell
あれあれnix-shelltrl入りのshell.nix

trl入りのshell.nix

2024/4/23 23:05:00
with import <nixpkgs> {};
with pkgs.python3Packages;

let
  pkgs_self = buildPythonPackage rec {
    pname = "trl";
    version = "0.8.6";
    format = "wheel";
    src = fetchurl {
      url = "https://files.pythonhosted.org/packages/97/7e/274ed94ab7da21db4b7cbccad2bf2ed0940082a929b1512e508351b289f5/trl-0.8.6-py3-none-any.whl";
      sha256 = "0c9ee3faa7a6ddc158debaea0f725edb3143b4cc43babc5b5a05374de3e6352c";
    };
    propagatedBuildInputs = [ accelerate transformers datasets];
  };

  pythonEnv = pkgs.python3.withPackages(ps: [pkgs_self]);
in
pkgs.mkShell {
  packages = [
    pythonEnv
  ];
}

python3Packagesとかにtrlが無くて苦労したが、fetchurlとbuildPythonPackageを組み合わせたら何とかなった。

あれ

2024/4/22 22:35:00

python-pkgs.trlが無いので、なんとかせにゃならん。用意されたものを使うのではなく、自分で作らねばならんということだ。

あれ

2024/4/22 22:34:00

あーはん?つまり、RyeじゃなくてNixでPythonのバージョンやらライブラリやらを管理すればええんじゃな?

shell.nixを定義してあげて、shell.nixを配置したディレクトリでnix-shellコマンドを叩くと、shell.nixで定義された環境が独立したshellとして立ち上がってくれる。Dockerっぽさがある。