有时,当我在 vs Code 终端内使用 conda activate (我的 venv)时,它会失败,并出现以下错误:
# >>>>>>>>>>>>>>>>>>>>>> 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>
如果我打开热敏应用程序,它就可以正常工作。我注意到 Vs code 尝试记住每个目录的活动环境,有时 shell 提示看起来像两个环境同时处于活动状态。我猜想当我从 VS Code 打开终端时,VS Code 会执行一组命令,在哪里可以看到它们?
知道如何解决这个问题吗?
目前已在 Github Issue 中进行此工作。
问题是扩展 unsets
CONDA_PREFIX
导致 join(prefix, ...)
失败。
暂时需要手动设置
CONDA_PREFIX
,具体取决于环境。
对于
base
环境,您可以使用:export CONDA_PREFIX=$CONDA_ROOT
对于其他人手动制作它:
export CONDA_PREFIX=$CONDA_ROOT/envs/<yourenvname>