It's a mess. On Arch Linux, we even have Python 2 and 3 side by side. While virtualenv is probably a usable solution, friends don't let friends build numpy...
I always advocate using the Anaconda Python distribution.
So far, I had also advised using something like
pip install --user <pkg> for
packages that are not prebuilt for conda, but even that turns into a mess eventually.
It turns out there is a better way:
conda skeleton pypi <pkg> conda build <pkg> conda install --use-local <full pkg name>
Done! There is now a directory
<pkg> containing the skeleton
recipe you might want to delete.