that's the part I hate about ros and a whole lot of other libraries that shouldn't have been so tightly coupled - you should be able to run most of ros in one env and then for the performance critical or hardware facing stuff, run them each in their own env and have lightweight communication between them.
I think if something annoys me enough I'll end up using nanomsg or mqtt as a bridge, but it's a pain.