긴 이름의 패키지로 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을 제공합니다.

관련 정보