Use Nix expressions or flakes for that - just copy a simple example of default.nix or shell.nix from a git host and tweak it to your liking. Personally, I am not a fan of how Nix handles Python, and still can’t get used to how Python packages have to be included in expressions, so I create a temporary virtual environment for the time-being.