List available pyenv versions
https://www.python.org/ftp/python/
pyenv install --list
virtualenv
pip install -U virtualenv --user mkdir -vp ~/test cd ~/test virtualenv .venv source .venv/bin/activate pip install -U pip pip install -U python-openstackclient
Pyenv and virtualenv
sudo apt install -y git build-essential libbz2-dev libreadline-dev libssl-dev zlib1g-dev libsqlite3-dev wget curl libncurses5-dev libncursesw5-dev xz-utils libffi-dev liblzma-dev git clone https://github.com/pyenv/pyenv.git ~/.pyenv git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\n eval "$(pyenv init -)"\n eval "$(pyenv virtualenv-init -)"\nfi' >> ~/.bashrc exec "$SHELL" # or re-login pyenv install 3.8.12 pyenv local 3.8.12 pyenv virtualenv 3.8.12 kolla-ansible-xena pyenv activate kolla-ansible-xena pyenv --version pyenv virtualenvs pyenv versions pip install -U pip pip install -U 'ansible<2.10' pip install -r requirements.txt # python setup.py install
Global pyenv configuration
# /etc/bash.bashrc export PYENV_ROOT=/usr/local/pyenv if command -v pyenv 1>/dev/null 2>&1; then export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init - --no-rehash)" eval "$(pyenv virtualenv-init -)" fi
Deploy pyenv with ansible role
- name: Install avanov.pyenv role from Ansible Galaxy become: no local_action: command ansible-galaxy install avanov.pyenv - name: Configure system pyenv include_role: name: avanov.pyenv vars: # pyenv_env: "user" pyenv_env: "system" pyenv_setting_path: "{% if pyenv_env == 'user' %}~/.bashrc{% else %}/etc/profile.d/pyenv.sh{% endif %}" pyenv_path: "{% if pyenv_env == 'user' %}{{ ansible_env.HOME }}/pyenv{% else %}/usr/local/pyenv{% endif %}" # pyenv_owner: "{{ ansible_env.USER }}" pyenv_owner: "root" pyenv_global: "python3 osc" pyenv_update_git_install: no pyenv_enable_autocompletion: yes pyenv_python_versions: - 2.7.18 - 3.9.16 pyenv_virtualenvs: - venv_name: "python3" py_version: "3.9.16" - venv_name: "osc" py_version: "3.9.16" - venv_name: "kolla-ansible" py_version: "2.7.18"
Links
https://github.com/pyenv/pyenv
https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global
https://github.com/pyenv/pyenv-virtualenv