Typically one Jupyter install system wide, and then multiple kernels with each environment.
Personally, I really like the juv model where dependencies are taken from the first cell of the notebook and a new kernel is created to launch the interface, but I haven't seen others using it much yet:
The idea is good, but juv is a one-jupyter-per-notebook model which isn't very practical for how my team uses jupyter. My attempt at "juv, but systemwide-jupyter-plus-one-kernel-per-notebook model" is this: https://github.com/tobinjones/uvkernel