I’m just trying to create a flake for a personal project that uses Jupyter Book. Since Jupyter Book isn’t in nixpkgs, I have to package that myself. nix build
and nix shell
both succeed fine, but then the command jupyter-book
isn’t available. What am I doing wrong?
Here’s the flake,, and here’s the jupyter-book.nix module I’m importing.
The purpose of python.withPackages
is creating a derivation with python
binary that has access to the specified Python modules – it will not expose any other files. So if you want to have e.g. program from some package in the environment, you will need to add it to the shell explicitly.
With flakes, that is what the devShell
output is for (use with pkgs.mkShell
and nix develop
command).
Also, I would recommend using let
bindings for the custom definitions:
$ nix flake check
warning: unknown flake output 'jupyterBook'
warning: unknown flake output 'myPython'
1 Like
How can I explicitly add a package to the environment?
So I’m getting closer but now I’m getting the error:
error: builder for '/nix/store/pp9074i7bmmvfmff4lkdmnj2wkj8vdaj-python3.8-attrs-20.3.0.drv' failed with exit code 1;
last 10 log lines:
> Executing pipInstallPhase
> /build/attrs-20.3.0/dist /build/attrs-20.3.0
> Processing ./attrs-20.3.0-py2.py3-none-any.whl
> Installing collected packages: attrs
> Attempting uninstall: attrs
> Found existing installation: attrs 21.2.0
> Uninstalling attrs-21.2.0:
> ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '_cmp.pyi'
> Consider using the `--user` option or check the permissions.
>
For full logs, run 'nix log /nix/store/pp9074i7bmmvfmff4lkdmnj2wkj8vdaj-python3.8-attrs-20.3.0.drv'.
error: 1 dependencies of derivation '/nix/store/85pch33lksbp8g0d7jhyawlpmyiwl7n8-python3-3.8.9-env.drv' failed to build
Does anyone know how to fix this kind of error?