Migration of python version on conda for AiiDA
I install AiiDA on conda env. Python packages follow python release versions, and often newer python versions are preferable. But updating python version on a conda env by, e.g., conda update "python=3.11"
fails when many packages were already installed because of the failure of solving dependency. Then, an easy choice is creating new env and install packages from scratch. This is much easier for me indeed.
Recent conda can rename env easily
conda rename -n orig_env backup_env
Create orig_env
conda create -n orig_env
Install packages (here python 3.11 for example)
conda install "python=3.11" postgresql
Having major version change of postgresql, db migration is necessary, see https://atztogo.hatenablog.com/entry/2023/05/06/154612.
Install other packages
conda install numpy scipy h5py pyyaml matplotlib-base c-compiler cxx-compiler "libblas=*=*mkl" spglib mkl-include boost eigen cmake ipython make
Activate (deactivate) setting has to be modified for zsh user like me.
cd $CONDA_PREFIX/etc/conda/activate.d/ mkdir bash mv * bash cp ~/.miniforge/envs/backup_env/etc/conda/activate.d/env_vars.sh .
Modify env_vars.sh
. Do the same for deactivate. In my case following lines:
export AIIDA_PATH=~/aiida eval "$(_VERDI_COMPLETE=zsh_source verdi)" export HOST=`hostname` autoload bashcompinit bashcompinit emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-binutils_linux-64.sh' emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gcc_linux-64.sh' emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/activate-gxx_linux-64.sh' emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/libblas_mkl_activate.sh' emulate sh -c 'source $CONDA_PREFIX/etc/conda/activate.d/bash/libxml2_activate.sh'
are written in env_vars.sh
. Then installing packages via pip. git-pull
aiida-core, and
pip install -e ."[atomic_tools,docs,tests,rest]"
git-pull
aiida-vasp, and
pip install -e ."[pre-commit,tests,graphs]"
Installed a different version of aiida-core, aiida-storage update may be necessary, but this is informed when verdi status
or verdi daemon start
, etc. So just follow it.