I have a python (3.11) virtual env named "Test". Using VSC, Command "Workon Test" puts me in the Test virtual env. However, when I "deactivate", the command prompt has "if defined _OLD_VIRTUAL_PYTHONPATH (set "PYTHONPATH=" ) followed by the correct command prompt as expected (C:\Users\ksarn\ENVS>).
C:\Users\ksarn\ENVS>pip list
Package Version
--------------------- -------
distlib 0.3.6
filelock 3.8.0
pip 22.3.1
platformdirs 2.5.4
setuptools 65.5.0
virtualenv 20.16.7
virtualenvwrapper-win 1.2.7
C:\Users\ksarn\ENVS>workon test
(test) C:\Users\ksarn\ENVS>whereis python
C:\Users\ksarn\ENVS\test\Scripts\python.exe
(test) C:\Users\ksarn\ENVS>deactivate
C:\Users\ksarn\ENVS>if defined _OLD_VIRTUAL_PYTHONPATH (set "PYTHONPATH=" )
C:\Users\ksarn\ENVS>
C:\Users\ksarn\ENVS>whereis python
C:\Users\ksarn\AppData\Local\Programs\Python\Python311\python.exe
C:\Users\ksarn\ENVS>
Why is it showing set "Python path statement?
Re-installed python 3.11 (with path selected), virtualenv and virtualenvwrapper-win. No change.
I had the same problem. What worked for me in Windows is editing the routine that creates each environment.
Find and go the folder where default python is installed, which is used as base for virtualenv, e.g.,
C:\Users\<UserName>\AppData\Local\Programs\Python\Python311(user only installation).Secondary click > Edit on the file
\Scripts\mkvirtualenv.batSearch for "_OLD_VIRTUAL_PYTHONPATH" (about in the middle of the file) and write the
@character to mute each command to be written inactivate.batanddeactivate.bat. The result should look something like this:Save the file and re-create any environment tha had the problem. It shouldn't verbose any command.
As an alternative, you can edit directly edit the
activate.batanddeactivate.batfiles for each environment within its\Scripts\subfolder.