neovim中打开终端conda环境初始化报错

在 neovim 中打开终端时有报错信息,报错信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

Traceback (most recent call last):
File "~/miniconda3/lib/python3.13/site-packages/conda/exception_handler.py", line 28, in __call__
return func(*args, **kwargs)
File "~/miniconda3/lib/python3.13/site-packages/conda/cli/main.py", line 87, in main_sourced
print(activator.execute(), end="")
~~~~~~~~~~~~~~~~~^^
File "~/miniconda3/lib/python3.13/site-packages/conda/activate.py", line 204, in execute
response = getattr(self, self.command)()
File "~/miniconda3/lib/python3.13/site-packages/anaconda_anon_usage/patch.py", line 52, in _new_activate
return self._old_activate()
~~~~~~~~~~~~~~~~~~^^
File "~/miniconda3/lib/python3.13/site-packages/conda/activate.py", line 166, in activate
builder_result = self.build_activate(self.env_name_or_prefix)
File "~/miniconda3/lib/python3.13/site-packages/conda/activate.py", line 345, in build_activate
return self._build_activate_stack(env_name_or_prefix, False)
~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "~/miniconda3/lib/python3.13/site-packages/conda/activate.py", line 435, in _build_activate_stack
deactivate_scripts = self._get_deactivate_scripts(old_conda_prefix)
File "~/miniconda3/lib/python3.13/site-packages/conda/activate.py", line 793, in _get_deactivate_scripts
for entry in os.scandir(join(prefix, "etc", "conda", "deactivate.d"))
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen posixpath>", line 77, in join
TypeError: expected str, bytes or os.PathLike object, not NoneType

`$ ~/miniconda3/bin/conda shell.posix activate base`

environment variables:
CIO_TEST=<not set>
CONDA_DEFAULT_ENV=langchain-demo
CONDA_EXE=~/miniconda3/bin/conda
CONDA_PREFIX_1=~/miniconda3
CONDA_PROMPT_MODIFIER=
CONDA_PYTHON_EXE=~/miniconda3/bin/python
CONDA_ROOT=~/miniconda3
CONDA_SHLVL=2
CURL_CA_BUNDLE=<not set>
GOPATH=~/go/go-1.26.2/dev/go
LD_PRELOAD=<not set>
MANPATH=/usr/share/man:/usr/local/share/man:/Applications/Ghostty.app/Contents
/Resources/ghostty/../man:
PATH=~/miniconda3/envs/langchain-demo/bin:/Users/longkun/
.local/share/nvim/mason/bin:/Users/longkun/.local/bin:/Users/longkun/.
opt/miniconda3/condabin:~/go/go-
1.26.2/bin:~/go/go-
1.26.2/dev/go/bin:~/miniconda3/bin:/Users/longkun/.o
pt/flutter/flutter_3.41.7-
stable/bin:~/nvim/bin:~/maven/apac
he-maven-3.9.9/bin:~/node-
v24.11.1/node_global/bin:~/node-
v24.11.1/bin:~/java/jdk-
17.0.2.jdk/Contents/Home/bin:/usr/local/bin:/usr/local/sbin:/usr/local
/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/
run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/
var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/va
r/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinte
rnal/bin:/Library/Apple/usr/bin:~/java/jdk-
17.0.2.jdk/Contents/Home/bin:~/maven/apache-maven-
3.8.9/bin:~/node-
v24.11.1/bin:/opt/podman/bin:/Applications/Ghostty.app/Contents/MacOS
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>

active environment : None
shell level : 2
user config file : /Users/longkun/.condarc
populated config files : ~/miniconda3/.condarc
/Users/longkun/.condarc
conda version : 25.7.0
conda-build version : not installed
python version : 3.13.5.final.0
solver : libmamba (default)
virtual packages : __archspec=1=skylake
__conda=25.7.0=0
__osx=15.7.5=0
__unix=0=0
base environment : ~/miniconda3 (writable)
conda av data dir : ~/miniconda3/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 : ~/miniconda3/pkgs
/Users/longkun/.conda/pkgs
envs directories : ~/miniconda3/envs
/Users/longkun/.conda/envs
platform : osx-64
user-agent : conda/25.7.0 requests/2.32.4 CPython/3.13.5 Darwin/24.6.0 OSX/15.7.5 solver/libmamba conda-libmamba-solver/25.4.0 libmambapy/2.0.5 aau/0.7.2
c/. s/. e/.
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>


Timeout reached. No report sent.

在 neovim 的终端中检查了 $CONDA_PREFIX 这个环境变量,确实是空的。

奇怪的是,打开 Ghostty 终端一切正常,没有报错,conda 默认环境也是默认激活的。

后面看到报错信息中有 CONDA_SHLVL=2,因为在 conda 默认在 .zshrc 下加了加载初始化脚本的内容,打开终端已经初始化了一次环境,在终端中打开 neovim,会再次执行 .zshrc 加载 conda 环境,所以存在嵌套加载。全局设置不激活 conda 默认环境 conda config --set auto_activate false,退出所有终端,再打开终端进入 neovim 打开 neovim 的终端,就没有报错了,手动激活对应的环境即可。

conda 的全局配置可以在 ~/.condarc 中查看,一开始我设置了 changeps1: false 关闭了 prompt 中的 conda 环境提示,以为是自定义 prompt 的影响,在 stackoverflow 上也看到了对应的讨论 Why am I now getting a conda environment error every time I open new terminal?,被带偏了,后来将 prompt 改为默认,changeps1 也改为默认配置,还是会报错。