All Projects → nix-community → pip2nix

nix-community / pip2nix

Licence: other
Freeze pip-installable packages into Nix expressions [maintainer=@datakurre]

Programming Languages

python
139335 projects - #7 most used programming language
Nix
1067 projects
Jinja
831 projects
shell
77523 projects

pip2nix

Generate nix expressions for Python packages.

Build Status Documentation Status PyPI status PyPI version

Why another .nix generator for Python?

The original author of pip2nix started the project with the following motivation:

I needed something that can work not only with pypi but also with local paths, VCS links, and dependency links. I couldn't get any of the other generators to work, so I started my own :-)

Major difference between pip2nix and pypi2nix is that pip2nix can be used to extend nixpkgs Python package set and reuse its package functions where pypi2nix maintains separate package tree from nixpkgs. Bot approaches have their own pros and cons.

Installation

Be aware that pip2nix is not yet mature software. It is a tool to aid Python developers who use Nix to automate a good chunk of the work to maintain a Nix based development environments.

The recommended usage at the moment is inside of a nix-shell, since this avoids putting a specific version into the user's environment:

$ git clone https://github.com/nix-community/pip2nix
$ cd pip2nix
$ nix-shell release.nix -A pip2nix.python36

Alternatively pip2nix can be installed into the user's environment:

$ git clone https://github.com/nix-community/pip2nix
$ nix-env -f pip2nix/release.nix -iA pip2nix.python36

Usage

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.

Contact

Problems and questions should go to GitHub issues.

Credits and History

Tomasz Kontusz started the project back in 2015, he's ktosiek on Freenode, and @tkontusz on Twitter.

In 2016 Johannes Bornhold took over as maintainer, since he was actively using pip2nix and Tomas was not actively using it himself anymore. Find him via https://www.johbo.com.

In 2019 Asko Soukka forked the project below https://github.com/nix-community/ and took over as maintainer.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].