diff --git a/neovim/postinstall b/neovim/postinstall index 6e15a37..c441985 100755 --- a/neovim/postinstall +++ b/neovim/postinstall @@ -2,5 +2,19 @@ set -exuo pipefail -[ -d ~/.virtualenvs/neovim3 ] || python3 -m venv ~/.virtualenvs/neovim3 -~/.virtualenvs/neovim3/bin/python -c 'import pynvim' || ~/.virtualenvs/neovim3/bin/pip install pynvim +VENV="~/.virtualenvs/neovim3" +PYTHON="${VENV}/bin/python" + +if [ -d "${VENV}" ]; then + # Upgrade the venv if the global Python version has changed. + local_py=$("${PYTHON}" --version) + global_py=$(python3 --version) + if [ "${local_py}" != "${global_py}" ]; then + python3 -m venv --upgrade "${VENV}" + "${PYTHON}" -m pip install --upgrade pip + fi +else + python3 -m venv "${VENV}" +fi + +"${PYTHON}" -c 'import pynvim' || "${PYTHON}" -m pip install pynvim