====== Anaconda on Caviness ======
$ vpkg_versions anaconda
Available versions in package (* = default version):
[/opt/shared/valet/2.1/etc/anaconda.vpkg_yaml]
anaconda Open Enterprise Python
* 5.2.0:python2 Anaconda Python2
5.2.0:python3 Anaconda Python3
2020.07 Anaconda Python3 (Python 2 deprecated)
2022.05 Anaconda Python3 (Python 2 deprecated)
2023.03 Anaconda Python3 (Python 2 deprecated)
2024.02 Anaconda Python3 (Python 2 deprecated)
See [[software:anaconda:caviness#Recipes|Recipes]] for examples of building virtual environments for specific packages.
===== Virtual Environment ====
If you are going to follow the instructions for creating an Anaconda virtual environment on Caviness consider using a slight modification to the documentation provided by each software package and use VALET to load the proper version of Anaconda for Python 2 or Python 3, specify a path in your home (''$HOME'') or workgroup (''$WORKDIR'') directory not in the system path for Anaconda, and also ignore the warnings to update ''conda'' as it is building your virtual environment.
See the example below which creates a virtual Anaconda environment based on Python 3 for FEniCS called ''fenicsproject'' in the ''traine'' home directory and installs all the fenics packages and mshr. Once the environment is created, then a simple interactive test is done on a compute node via the ''devel'' partition to verify the new ''fenicsproject'' Anaconda environment is working properly.
[traine@login00 ~]$ vpkg_devrequire anaconda/2024.02
Adding package `anaconda/2024.02` to your environment
[traine@login00 ~]$ conda create -p ~/fenicsproject -c conda-forge fenics fenics-dijitso fenics-dolfin fenics-ffc fenics-fiat fenics-libdolfin fenics-ufl mshr
Solving environment: done
## Package Plan ##
environment location: /home/1201/fenicsproject
added / updated specs:
- fenics
- fenics-dijitso
- fenics-dolfin
- fenics-ffc
- fenics-fiat
- fenics-libdolfin
- fenics-ufl
- mshr
The following packages will be downloaded:
...
...
...
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
...
...
...
#
# To activate this environment, use:
# > conda activate /home/1201/fenicsproject
#
# To deactivate an active environment, use:
# > conda deactivate
#
[traine@login00 ~]$ workgroup -g it_css
[(it_css:traine)@login00 ~]$ salloc --partition=devel
salloc: Pending job allocation 28214017
salloc: job 28214017 queued and waiting for resources
salloc: job 28214017 has been allocated resources
salloc: Granted job allocation 28214017
salloc: Waiting for resource configuration
salloc: Nodes r00n56 are ready for job
[traine@r00n56 ~]$ vpkg_devrequire anaconda/2024.02
Adding package `anaconda/2024.02` to your environment
[traine@r00n56 ~]$ conda activate ~/fenicsproject
(/home/1201/fenicsproject) [traine@r00n56 ~]$ python3 -c "import mshr"
(/home/1201/fenicsproject) [traine@r00n56 ~]$ conda deactivate
[traine@r00n56 ~]$ exit
logout
salloc: Relinquishing job allocation 28214017
[(it_css:traine)@login00 ~]$
===== Recipes ====
Examples documented as recipes to be used for specific installations including using a ''workgroup'' directory as well as creating VALET packages for these environments and job scripts setup for batch runs, but can also perhaps help others in solving similar installation dilemmas.
* [[technical:recipes:pyqt5-in-virtualenv|Building PyQt5 in a Python Virtual Environment]]
* [[technical:recipes:jupyter-notebook|Building a Jupyter Notebook Python Virtual Environment]]
* [[technical:recipes:keras-in-virtualenv|Keras Python Virtual Environment]]
* Gurobi Python Virtual Environments
* [[software:gurobi:caviness#serial-or-threaded-python-environment|Gurobi Python Threaded and Serial]]
* [[software:gurobi:caviness#mpi-python-environment|Gurobi Python MPI]]
* [[technical:recipes:emcee-in-virtualenv|Python Virtualenv: emcee and pyKLIP]]
* [[technical:recipes:mpi4py-in-virtualenv|Building Python Virtual Environments with mpi4py]]
* [[technical:recipes:tensorflow-in-virtualenv|Building a TensorFlow Python Virtual Environment]]
* [[technical:recipes:openmm|Building an OpenMM Python Virtual Environment]]