Nix solves a lot of Python packaging problems and I'm a happy user. But you lose some of the convenience of plain pip. For example, with Nix, it's no longer easy to mix and match versions of different packages. You just get the package versions that happen to live in the snapshot of nixpkgs you're using. If I want to use an older version of a package than the one in nixpkgs, I now have to add an override for that package and pray that changing the version/hash is enough.