如何使用长名称的包启动 nix-shell

如何使用长名称的包启动 nix-shell
nix-env -iA nixpkgs.python311

有用

但是当我做一个

nix-shell -p nixpkgs.python311

或一个

nix-shell -p python3-3.11.1

显然名称和参数有问题

nix-shell -p python3-3.11.1 错误:未定义变量“python3-3”

   at «string»:1:107:

        1| {...}@args: with import <nixpkgs> args; (pkgs.runCommandCC or pkgs.runCommand) "shell" { buildInputs = [

(python3-3.11.1)]; } "" | ^(使用“--show-trace”显示详细的位置信息)

问候

答案1

如果要将任意 Nix 表达式传递给nix-shell -p,请将其放在括号中:

nix-shell -p '((import <nixpkgs> {}).python311)'

您可以附加到的任何内容都nix-env -iA nixpkgs.应该能够附加到python311上面的位置。它还可以用于以下用途:

nix-shell -p \
  '((import <nixpkgs> {}).python311.withPackages (p: [p.lxml p.pyyaml]))'

...提供安装了 lxml 和 PyYAML 的 Python 3.11。

相关内容