Open Vanav opened 1 year ago
If venv already exists for Python version A, and we are force creating venv with the same name for Python version B, then Python version for venv is not updated: venv symlink is not changed, but new symlink is created inside venv directory.
Bug fix:
ln -fs "${VIRTUALENV_PATH}" "${COMPAT_VIRTUALENV_PATH}" → ln -fsn "${VIRTUALENV_PATH}" "${COMPAT_VIRTUALENV_PATH}"
https://github.com/pyenv/pyenv-virtualenv/blob/fca12418ca716cadc39ae498571bd6634ca3075e/bin/pyenv-virtualenv#L594
How to reproduce:
$ pyenv virtualenv --force 3.9.6 dev $ ls -al /opt/pyenv-installer/pyenv/versions/3.9.6/envs/dev drwxrwsr-x 6 deployer deployer 4096 Mar 30 12:09 . drwxrwsr-x 3 deployer deployer 4096 Jul 5 2021 .. drwxrwsr-x 3 deployer deployer 4096 Mar 15 11:01 bin drwxrwsr-x 2 deployer deployer 4096 Jul 5 2021 include drwxrwsr-x 3 deployer deployer 4096 Jul 5 2021 lib lrwxrwxrwx 1 deployer deployer 3 Jul 5 2021 lib64 -> lib -rw-rw-r-- 1 deployer deployer 106 Mar 30 11:02 pyvenv.cfg drwxrwsr-x 3 deployer deployer 4096 Feb 17 12:46 share $ pyenv virtualenvs | grep -i dev 3.9.6/envs/dev (created from /opt/pyenv-installer/pyenv/versions/3.9.6) * dev (created from /opt/pyenv-installer/pyenv/versions/3.9.6) $ pyenv virtualenv --force 3.9.7 dev Command executed: ln -fs /opt/pyenv-installer/pyenv/versions/3.9.7/envs/dev /opt/pyenv-installer/pyenv/versions/dev $ pyenv virtualenvs | grep -i dev 3.9.6/envs/dev (created from /opt/pyenv-installer/pyenv/versions/3.9.6) 3.9.7/envs/dev (created from /opt/pyenv-installer/pyenv/versions/3.9.7) * dev (created from /opt/pyenv-installer/pyenv/versions/3.9.6) $ ls -al /opt/pyenv-installer/pyenv/versions/3.9.6/envs/dev drwxrwsr-x 6 deployer deployer 4096 Mar 30 12:09 . drwxrwsr-x 3 deployer deployer 4096 Jul 5 2021 .. drwxrwsr-x 3 deployer deployer 4096 Mar 15 11:01 bin drwxrwsr-x 2 deployer deployer 4096 Jul 5 2021 include lrwxrwxrwx 1 root deployer 57 Mar 30 12:09 dev -> /opt/pyenv-installer/pyenv/versions/3.9.7/envs/dev drwxrwsr-x 3 deployer deployer 4096 Jul 5 2021 lib lrwxrwxrwx 1 deployer deployer 3 Jul 5 2021 lib64 -> lib -rw-rw-r-- 1 deployer deployer 106 Mar 30 11:02 pyvenv.cfg drwxrwsr-x 3 deployer deployer 4096 Feb 17 12:46 share
Notice new symlink in incorrect place.
If venv already exists for Python version A, and we are force creating venv with the same name for Python version B, then Python version for venv is not updated: venv symlink is not changed, but new symlink is created inside venv directory.
Bug fix:
https://github.com/pyenv/pyenv-virtualenv/blob/fca12418ca716cadc39ae498571bd6634ca3075e/bin/pyenv-virtualenv#L594
How to reproduce:
Notice new symlink in incorrect place.