====== 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]]