Sometimes when I use conda activate (my venv)
inside the VSCode terminal it fails, with the following error:
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/exception_handler.py", line 17, in __call__
return func(*args, **kwargs)
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/cli/main.py", line 105, in main_sourced
print(activator.execute(), end="")
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/activate.py", line 199, in execute
return getattr(self, self.command)()
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/activate.py", line 165, in activate
builder_result = self.build_activate(self.env_name_or_prefix)
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/activate.py", line 343, in build_activate
return self._build_activate_stack(env_name_or_prefix, False)
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/activate.py", line 433, in _build_activate_stack
deactivate_scripts = self._get_deactivate_scripts(old_conda_prefix)
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/site-packages/conda/activate.py", line 765, in _get_deactivate_scripts
for entry in os.scandir(join(prefix, "etc", "conda", "deactivate.d"))
File "/Users/umbertofontanazza/opt/anaconda3/lib/python3.9/posixpath.py", line 76, in join
a = os.fspath(a)
TypeError: expected str, bytes or os.PathLike object, not NoneType
`$ /Users/umbertofontanazza/opt/anaconda3/bin/conda shell.posix activate base`
environment variables:
CIO_TEST=<not set>
CONDA_EXE=/Users/umbertofontanazza/opt/anaconda3/bin/conda
CONDA_PREFIX_3=/Users/umbertofontanazza/opt/anaconda3
CONDA_PYTHON_EXE=/Users/umbertofontanazza/opt/anaconda3/bin/python
CONDA_ROOT=/Users/umbertofontanazza/opt/anaconda3
CONDA_SHLVL=4
CURL_CA_BUNDLE=<not set>
LD_PRELOAD=<not set>
MANPATH=/usr/share/man:/usr/local/share/man:/Applications/Wireshark.app/Conten
ts/Resources/share/man:
PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/
sbin:/Applications/Wireshark.app/Contents/MacOS:/var/run/com.apple.sec
urity.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple
.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.s
ecurity.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>
active environment : None
shell level : 4
user config file : /Users/umbertofontanazza/.condarc
populated config files : /Users/umbertofontanazza/.condarc
conda version : 23.9.0
conda-build version : 3.27.0
python version : 3.9.18.final.0
virtual packages : __archspec=1=x86_64
__osx=10.16=0
__unix=0=0
base environment : /Users/umbertofontanazza/opt/anaconda3 (writable)
conda av data dir : /Users/umbertofontanazza/opt/anaconda3/etc/conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/osx-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/osx-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /Users/umbertofontanazza/opt/anaconda3/pkgs
/Users/umbertofontanazza/.conda/pkgs
envs directories : /Users/umbertofontanazza/opt/anaconda3/envs
/Users/umbertofontanazza/.conda/envs
platform : osx-64
user-agent : conda/23.9.0 requests/2.31.0 CPython/3.9.18 Darwin/22.5.0 OSX/10.16
UID:GID : 501:20
netrc file : None
offline mode : False
An unexpected error has occurred. Conda has prepared the above report.
If you suspect this error is being caused by a malfunctioning plugin,
consider using the --no-plugins option to turn off plugins.
Example: conda --no-plugins install <package>
Alternatively, you can set the CONDA_NO_PLUGINS environment variable on
the command line to run the command without plugins enabled.
Example: CONDA_NO_PLUGINS=true conda install <package>
Whereas if I open the terminal app it works just fine. I noticed that VSCode tries to remember the active env for each directory and sometimes the shell promp looks like two envs were active at the same time. I guess there is a set of commands that VSCode executes when I open the terminal from Vs code, where can I see them?
How can I fix this?
Previously terminal.integrated.inheritEnv
was true by default. In 2019 they had the plan to set it to false by default.
It is mentioned that this might become standard in a few VSCode versions. See https://code.visualstudio.com/updates/v1_36#_launch-terminals-with-clean-environments.
It could be that they now changed it to be false by default, causing said problem [Needs verification].
When false the terminal does not use a VSCode environment but instead 'fetches and use the environment of the parent process of VS Code's "main process"
Changing terminal.integrated.inheritEnv
to true again fixed the problem permanently for me.