about summary refs log tree commit diff
path: root/doc/languages-frameworks/hy.section.md
blob: 49309e4819f5e393760c3dd3ab5f2196ed80f0b8 (plain) (blame)
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
# Hy {#sec-language-hy}

## Installation {#ssec-hy-installation}

### Installation without packages {#installation-without-packages}

You can install `hy` via nix-env or by adding it to `configuration.nix` by referring to it as a `hy` attribute. This kind of installation adds `hy` to your environment and it successfully works with `python3`.

::: {.caution}
Packages that are installed with your python derivation, are not accessible by `hy` this way.
:::

### Installation with packages {#installation-with-packages}

Creating `hy` derivation with custom `python` packages is really simple and similar to the way that python does it. Attribute `hy` provides function `withPackages` that creates custom `hy` derivation with specified packages.

For example if you want to create shell with `matplotlib` and `numpy`, you can do it like so:

```ShellSession
$ nix-shell -p "hy.withPackages (ps: with ps; [ numpy matplotlib ])"
```

Or if you want to extend your `configuration.nix`:
```nix
{ # ...

  environment.systemPackages = with pkgs; [
    (hy.withPackages (py-packages: with py-packages; [ numpy matplotlib ]))
  ];
}
```