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 Notebookshell.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プロジェクトの最上位ディレクトリに2つのファイルを配置するだけです。
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.nix
mkPoetryEnvはパッケージのビルドにかなり長い時間がかかるため、ビルド結果がGCで処理されないようにすることをお勧めします。
答え4
ここでは、NixosでJuypterを使用する方法についての素晴らしい記事です。