Nixos: jupyter 노트북에 deps를 설치하는 방법은 무엇입니까?

Nixos: jupyter 노트북에 deps를 설치하는 방법은 무엇입니까?

NixOs에 Jupyter 노트북을 설치하려고 하는데 numpy 및 기타 라이브러리를 jupyter에 설치하는 방법을 찾을 수 없습니다. 이제 다음과 같은 것을 추가했습니다 configuration.nix.

{ config, pkgs, ... }:
let
  python3-with-my-packages =
    pkgs.python3.withPackages (python-packages: with python-packages; [
      numpy
  ]);
in
{
  environment.systemPackages = with pkgs; [
    python3-with-my-packages
    jupyter
  ];
  [...]
}

답변1

작은 Jupyter Notebook shell.nix파일은 다음과 같습니다.

with import <nixpkgs> {};

(pkgs.python3.withPackages (ps: with ps; [
    ipykernel jupyterlab
    matplotlib numpy pandas seaborn
    networkx
  ])).env

먼저 shell.nix수정된 버전의 파일을 프로젝트 디렉터리에 복사하고 실행합니다 nix-shell --run "jupyter lab".

답변2

이것이 최선의 해결책이라고 말하는 것은 아니지만 패키지가 우리에게 필요한 패키지가 아닌 것 같습니다. 대신 Python 패키지를 deps 목록에 jupyter추가하려고 합니다 .notebook

{ config, pkgs, ... }:
let
  python3-with-my-packages =
    pkgs.python3.withPackages (python-packages: with python-packages; [
      numpy
      notebook
  ]);
in
{
  environment.systemPackages = with pkgs; [
    python3-with-my-packages
  ];
  [...]
}

이것이 갈 길이 아닌지, 더 나은 해결책이 있다면 알려주세요!

답변3

이 주제를 확인해 볼 수도 있습니다.배터리가 포함된 Jupyter 노트북NixOS Discourse의 Jupyter Notebook에 대한 Nixy 종속성 관리에 대한 일부 논의입니다.

Nix가 아닌 환경과 호환되는 것을 원한다면 mkPoetryEnv다음의 도움을 받아 NixOS에서 Poetry를 사용하는 방법을 찾았 습니다 buildFHSUserEnv.

Poetry 프로젝트의 최상위 디렉터리에 두 개의 파일을 배치하면 됩니다.

poetry-env.nix

{pkgs ? import <nixpkgs> {} }:
let
  lib = pkgs.lib;
  poetry2nix = pkgs.poetry2nix;
  python37 = pkgs.python37;
in
  poetry2nix.mkPoetryEnv {
    python = python37;
    pyproject = ./pyproject.toml;
    poetrylock = ./poetry.lock;
  }

poetry-env-fhs.nix

{
  pkgs ? import <nixpkgs> {},
  # This allows us to provide a command to run via `--argstr run COMMAND`.
  run ? "bash"
}:
let
  poetry-env = import ./poetry-env.nix { };
in
  with pkgs; (buildFHSUserEnv {
    name = "poetry-env-fhs";
    targetPkgs = pkgs: with pkgs; [
      # curl
      # git
      gcc
      gnumake
      python37Packages.poetry
      pandoc # for pdf conversion
      texlive.combined.scheme-full # for pdf conversion
      which # a convenient tool in vertualized environments
    ] ++ [
      poetry-env
    ];
    runScript = "${run}";
    profile = ''
      # export SSL_CERT_FILE=${cacert}/etc/ssl/certs/ca-bundle.crt
      # export GIT_SSL_CAINFO="$SSL_CERT_FILE"
      # export LANG=C.UTF-8
    '';
  }).env

nix-build ./poetry-env.nixmkPoetryEnv는 패키지를 빌드하는 데 꽤 오랜 시간이 걸리므로 빌드 결과가 GC에서 처리되지 않도록 하는 것이 좋습니다 .

Jupyter 노트북 종속성 관리를 위해 Poetry 사용

답변4

다음은 Nixos와 함께 Juypter를 사용하는 방법에 대한 훌륭한 기사입니다.

https://www.tweag.io/blog/2019-02-28-jupyter-with/

관련 정보