Requests to set up virtual environments (python, containers, os-related, for example) seem to be increasing in frequency. A workshop in which I recently participated required attendees to create a virtual environment for the interactive portion. Are there certain indicators that suggest that the implementation of a virtual environment would be beneficial (for a given problem)? And how does one determine the best type of virtual environment to launch?
What qualifies as a virtual environment, and when is it appropriate to create a virtual environment?
@toreliza We use Virtual Environments for python and perl. We provide a minimal set of common add-ons for python (e.g., numpy, spicy), but our docs tell the users to use the “virtualenv” command to create a world where they have additional packages and/or newer versions.
https://public.confluence.arizona.edu/display/UAHPC/Using+and+Installing+Python
covers much of the “how to”, and some of the why. We’ve had bad experiences in updating packages as the newer versions sometimes break existing workflows, or are just plain buggy. With virtualenv, User A can have the latest version of XXX she needs, while User Y continues happily with the older version.
We have a similar setup for perl (perl-virtualenv) documented at
https://public.confluence.arizona.edu/display/UAHPC/Using+and+Installing+Perl