====== Multiple python versions ======
====== pyenv ======
* [[https://realpython.com/intro-to-pyenv/]]
* [[https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get]]
===== Installation =====
For fully automated installation: curl https://pyenv.run | bash
Manual installation steps:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# Restart shell to apply new PATH variable
exec "$SHELL"
==== Install plugins ====
git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
===== Install Python build dependencies =====
sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
===== Install additional Pythons =====
# list of all available versions
pyenv install -l
pyenv install 3.11
===== Usage =====
$ python3 --version
Python 3.9.2
$ pyenv global 3.11
$ python3 --version
Python 3.11.4
$ pyenv global system
$ python3 --version
Python 3.9.2