==== Python Virtual Environments ==== [[https://towardsdatascience.com/a-guide-to-conda-environments-bc6180fc533#7d04|Overview to conda environments]] __Installing miniconda__ * Download and install miniconda3 as non-admin user from https://docs.conda.io/en/latest/miniconda.html * Get the "Miniconda3 Linux 64-bit" version * NOTE: You may need to remove a $HOME/.condarc file if you have one to prevent repo source conflicts cd $HOME mkdir $HOME/tmpconda TMPDIR=$HOME/tmpconda wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh TMPDIR=$HOME/tmpconda bash Miniconda3-latest-Linux-x86_64.sh * (Accept license agreement and all the suggested default choices) * Note that if you do not want conda's base environment to be activated upon startup, run the following: conda config --set auto_activate_base false Now try creating a test conda environment: cd ~/miniconda3/envs ~/miniconda3/bin/conda create -n testenv2_3.11.4 -c conda-forge time numpy requests pygrib netCDF4 scipy python=3.11.4 ~/miniconda3/bin/conda init bash * (Open a new xterm and type 'bash') conda activate $HOME/miniconda3/envs/testenv cd $HOME/miniconda3/envs/testenv * (do work) conda deactivate Other useful commmands (see https://www.python.org/downloads/ for specific python versions) : conda create -n testenv2 python=3.11.3 conda activate testenv2 conda update conda (update just the conda package) conda update --all (update all conda packages) python3 -m pip list --outdated python3 -m pip install --upgrade conda install conda=23.3.1 (installing or force-installing a specific conda package version) conda -V (the conda version) conda remove --name myenv --all (remove a conda environment) __Running a cron under conda (is this correct?)__ 21 15 * * * conda activate testenv2; /path/to/script.py > /tmp/output.txt (just call the correct version of python in first line of the script) Questions/Tests: * Create a conda test env with specific version of python * Run a script using that new test environment * Update the first line to point to the correct version of python * Run cron under conda * If you update the first line in the script to point to desired conda version of python, then no need to activate the conda env (?) __Using venv to set up a python virtual environment__ Note: This method __does not__ allow for running a different version of python that is natively installed on the system. python3 -m venv venv_test source venv_test/bin/activate cd venv_test pip list pip install --upgrade pip pip install pygrib (venv_test) (base) [user@host: ~/venv_test]$ pip list Package Version ---------- --------- certifi 2022.6.15 numpy 1.21.6 pip 22.1.2 pygrib 2.1.4 pyproj 3.2.1 setuptools 40.6.2 When done working: deactivate __Setting up a python virtual environment (with virtualenv)__ Note: This method __does__ allow for running a different version of python that is natively installed on the system. dnf install virtualenv virtualenv --python="/usr/local/bin/python" "/path/to/the/venv_dir/" cd /path/to/the/venv_dir source bin/activate See [[python_alternative_upgrade_notes|Python Alternative Upgrade Notes]] for installing a different/local version of python.