Hi! I’m grateful for your hard work, and that you shared its fruits with everyone. While I don’t know what a good solution would be, I’d like to second what @shishkin said about the daunting introductory example. Being an intermediate Nix user and beginner at Python, I was simply scared of it.
Let me give you a brief background. I’ve been working on a small Python project over the past week, mainly as a way to learn the language. While developing, I had very good experience with Devenv. Eventually, I wanted to deploy my program on a NixOS server. Here, the frustration started to grow. For simplicity, at first my requirements were listed in requirements.txt, and I used venv to load them. This wouldn’t work in nix build, because it needs to be deterministic and there is no network access. Fair enough. I heard about Poetry2Nix, but it turns out it’s unmaintained, and its README advises to use uv2nix. That was the first time I heard about uv, but again, switching the development environment was relatively easy. Then I looked into packaging my program and saw this page: https://pyproject-nix.github.io/uv2nix/usage/hello-world.html – its title is “Basic usage” and it greets you with a flake.nix that looks very complicated. My heart sank, and my first thought was: if I bring this code into my project, then I’ll have to later maintain it, and every few updates of my server, something will break there, and I’ll have to analyze and debug it, probably at the least convenient time. I ended up using standard mkDerivation with python.withPackages, which works fine for me, but won’t work for anyone without Nix.
It’s great that you want to empower users, but sometimes we just want our stuff to work, and to move on. Most of my NixOS experience is like that – I set a few options and stuff just works for years without any tweaks. Actually, it even gets better over time, through community effort. So please consider if there is anything you can do to make the first experience easier for dummies like me.