pip and venv are working, but packages that require compiling or ship binaries by itself usually won't work out of the box. They depend on gcc or libopenssl to be globally available: the whole gist of Nix not doing 😅
I've found devenv.sh to be most convenient way to handle such projects. You can define the dependencies for a project. It has explicit python/venv/requirements.txt/poetry support. It works for NixOS, but also other distros and MacOS. Very convenient to share and lock development tools and libraries across a team.
Nix with nix-output-monitor (nom). https://github.com/maralorn/nix-output-monitor
It shows the tree of packages to download and to build. It shortens the tree in realtime when packages have finished downloading/building and lengthens the tree when it finds more packages it needs to handle. Very fun and satisfying.
I haven't seen this in other package managers.