Zulip is interested in replacing its provisioning system with Nix (see https://chat.zulip.org/#narrow/stream/3-backend/topic/provision.20via.20nix/near/1354345). The first step toward this goal is by making its Python environment setup using Nix.
This is the entirety of the script used by Zulip to prepare a Python virtualenv (where everything is cached in /srv/zulip-py3-venv): https://github.com/zulip/zulip/blob/d0a697fba73b1e0cdfd372b840b8fe4bda225723/scripts/lib/setup_venv.py. The requirements.txt files in https://github.com/zulip/zulip/tree/main/requirements are generated via pip-tools. The need to do hashing manually, to install system packages manually, will become obsolete once in Nix.
The progress is pending because there are several similar tools that do Python on Nix: mach-nix, pip2nix, poetry2nix, pynixify.
If anyone can give advice on which tool is best suited for this use case, it would be greatly helpful! I can provide additional context as needed.