diff --git a/.gitignore b/.gitignore
index 3c3629e..82b6267 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,7 @@
+# node
node_modules
+
+# python
+.venv
+__pycache__
+_build
diff --git a/python/foo.py b/python/foo.py
new file mode 100644
index 0000000..13be646
--- /dev/null
+++ b/python/foo.py
@@ -0,0 +1,3 @@
+import yaml
+
+print(yaml.safe_load("foo: y"))
diff --git a/python/shell.nix b/python/shell.nix
new file mode 100644
index 0000000..1480933
--- /dev/null
+++ b/python/shell.nix
@@ -0,0 +1,16 @@
+let
+ pkgs = import <nixpkgs> {};
+in pkgs.mkShell {
+ buildInputs = [
+ pkgs.python3
+ pkgs.python3.pkgs.pip
+ ];
+ shellHook = ''
+ # Tells pip to put packages into $PIP_PREFIX instead of the usual locations.
+ # See https://pip.pypa.io/en/stable/user_guide/#environment-variables.
+ export PIP_PREFIX=$(pwd)/_build/pip_packages
+ export PYTHONPATH="$PIP_PREFIX/${pkgs.python3.sitePackages}:$PYTHONPATH"
+ export PATH="$PIP_PREFIX/bin:$PATH"
+ unset SOURCE_DATE_EPOCH
+ '';
+}