blob: df1ef33bebaa93d36bf93fb05ec0f08b6bd2423f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# Nix Python Devenv
A Python development environment template using [devenv](https://devenv.sh) with working C bindings,
managed by [uv](https://docs.astral.sh/uv/) package manager.
A version of this repo with CUDA is available on the
[cuda branch](https://github.com/clementpoiret/nix-python-devenv/tree/cuda).
## Features
- CUDA toolkit and CUDNN support (see the `cuda` branch)
- Python 3.x environment
- Fast package management with uv
- Automatic environment activation with direnv
- Example script using numpy
## Installation
1. Install [Nix](https://nixos.org/download/):
```bash
sh <(curl -L https://nixos.org/nix/install) --daemon
```
2. Install [devenv](https://devenv.sh/)
```bash
nix-env -iA devenv -f https://github.com/NixOS/nixpkgs/tarball/nixpkgs-unstable
```
3. Install [direnv](https://direnv.net/) (optional but recommended)
4. Clone and setup:
```bash
git clone --single-branch --branch cuda git@github.com:clementpoiret/nix-python-devenv.git
# Allow direnv to manage the environment
direnv allow
```
## Usage
The environment automatically:
- Activates the Python virtual environment
- Sets up LD_LIBRARY_PATH
- Provides the `hello` command to test C Bindings
Run the sample script:
```bash
hello
```
This will display the output of numpy functions.
|