Installation¶
Using pip2nix directly out of the git repository can be achieved in the following way:
$ git clone https://github.com/johbo/pip2nix
$ nix-env -f pip2nix/release.nix -iA pip2nix.python35
Instead of installing into the environment, another convenient way of using it is based on nix-shell:
$ nix-shell release.nix -A pip2nix.python36
Since pip2nix is not yet in a mature state, the usage of nix-shell is recommended. It does allow to investigate problems on the spot, since it is basically a development environment of pip2nix.
Basic usage¶
Ad-hoc python-packages.nix generation¶
To generate python-packages.nix for a set of requirements:
$ pip2nix generate -r requirements.txt
pip2nix generate
takes the same set of package specifications pip install
does.
It understands -r
, git links, package specifications, and -e
(which is just ignored).
Using pip2nix in a project¶
When packaging a project with pip2nix you’ll want to make sure it’s called the
same way every time you bump dependencies. To do that, you can create a
pip2nix.ini
file:
[pip2nix]
requirements = -r ./requirements.txt
This way you can just run pip2nix generate
in the project’s root.
More about the configuration file in Configuration file.
To actually use the generated packages file, you can create a default.nix with
pip2nix scaffold
. To work on a project myProject you’d use:
$ pip2nix scaffold --package myProject
$ cat > pip2nix.ini <<EOF
[pip2nix]
requirements = .
EOF
$ pip2nix generate
$ nix-shell # all the deps should be available