summaryrefslogtreecommitdiff
path: root/3 resources/nix/shell.nix.md
diff options
context:
space:
mode:
authorJasper Ras <jras@hostnet.nl>2025-01-08 10:48:09 +0100
committerJasper Ras <jras@hostnet.nl>2025-01-08 10:48:09 +0100
commited0753ad224f0c65133bd7a63180257eecd9f5e3 (patch)
treecc662868574fe17db58be9e0faadd452c84dc59c /3 resources/nix/shell.nix.md
parent493be30dc981eaf762a95a1218f96893b1976727 (diff)
vault backup: 2025-01-08 10:48:09
Diffstat (limited to '3 resources/nix/shell.nix.md')
-rw-r--r--3 resources/nix/shell.nix.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/3 resources/nix/shell.nix.md b/3 resources/nix/shell.nix.md
new file mode 100644
index 0000000..d5fa8ce
--- /dev/null
+++ b/3 resources/nix/shell.nix.md
@@ -0,0 +1,39 @@
+Can be used to set up per dir environments, e.g using direnv to automatically activate them.
+## Python
+https://nixos.org/manual/nixpkgs/stable/#python
+
+```nix
+{ pkgs ? import <nixpkgs> {}}:
+
+pkgs.mkShell {
+ packages = [ pkgs.virtualenv ];
+}
+```
+
+```nix
+with import <nixpkgs> {};
+let
+ my_toolz = python311.pkgs.buildPythonPackage rec {
+ pname = "toolz";
+ version = "0.10.0";
+ pyproject = true;
+ src = fetchPypi {
+ inherit pname version;
+ hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
+ };
+ nativeBuildInputs = [
+ python311.pkgs.setuptools
+ python311.pkgs.wheel
+ ]; # has no tests
+ doCheck = false;
+ meta = {
+ homepage = "https://github.com/pytoolz/toolz/";
+ description = "List processing tools and functional utilities";
+ # [...]
+ };
+ };
+in python311.withPackages (ps: with ps; [ numpy my_toolz ]) ).env
+```
+
+The [[keyword-import]] is required here because imports a nix expression from another source, in this case nixpkgs.
+It is not required at line two, because python310Packages itself is already in the local scope. \ No newline at end of file