.condarc文件编码错误导致Anaconda无法启动故障一例
故障描述:一台安装了Anaconda 24.5.0的服务器,一日从开始菜单启动Anaconda Prompt时,回显“Error importing conda-build: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence”错误,且Anaconda无法使用。完整错误如下:
Error importing conda-build: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence
Error while loading conda entry point: conda-build ('gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence)
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\exception_handler.py", line 18, in __call__
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\cli\main.py", line 98, in main_sourced
context.__init__()
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\base\context.py", line 496, in __init__
self._set_search_path(
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\common\configuration.py", line 1425, in _set_search_path
self._set_raw_data(dict(self._load_search_path(self._search_path)))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\common\configuration.py", line 1414, in _load_search_path
yield path, YamlRawParameter.make_raw_parameters_from_file(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\common\configuration.py", line 398, in make_raw_parameters_from_file
yaml_obj = yaml_round_trip_load(fh)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\conda\common\serialize.py", line 36, in yaml_round_trip_load
return _yaml_round_trip().load(string)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\ruamel\yaml\main.py", line 432, in load
constructor, parser = self.get_constructor_parser(stream)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\ruamel\yaml\main.py", line 483, in get_constructor_parser
self.reader.stream = stream
^^^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\ruamel\yaml\reader.py", line 133, in stream
self.determine_encoding()
File "C:\ProgramData\anaconda3\Lib\site-packages\ruamel\yaml\reader.py", line 193, in determine_encoding
self.update_raw()
File "C:\ProgramData\anaconda3\Lib\site-packages\ruamel\yaml\reader.py", line 288, in update_raw
data = self.stream.read(size)
^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence
`$ C:\ProgramData\anaconda3\Scripts\conda-script.py shell.cmd.exe activate C:\ProgramData\anaconda3`
environment variables:
CIO_TEST=<not set>
CONDA_ALLOW_SOFTLINKS=false
CONDA_EXE=C:\ProgramData\anaconda3\condabin\..\Scripts\conda.exe
CONDA_ROOT=C:\ProgramData\anaconda3
CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.6
CURL_CA_BUNDLE=<not set>
HOMEPATH=\Users\Administrator
LD_PRELOAD=<not set>
PATH=C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v12.6\bin;C:\Program Files\NVIDIA GPU Computing
Toolkit\CUDA\v12.6\libnvvp;C:\Program Files\Microsoft\jdk-11.0.12.7-
hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:
\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\
;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program
Files\Git\cmd;C:\Program Files\MATLAB\R2024a\runtime\win64;C:\Program
Files\MATLAB\R2024a\bin;C:\Program Files\Microsoft SQL
Server\150\Tools\Binn\;C:\Program Files\dotnet\;C:\Program
Files\NVIDIA Corporation\Nsight Compute 2024.3.1\;C:\MinGW\bin;C:\User
s\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administr
ator\.dotnet\tools;C:\Users\Administrator\AppData\Local\Programs\Ollam
a;
PSMODULEPATH=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\Windows
PowerShell\v1.0\Modules
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>
active environment : None
user config file : C:\Users\Administrator\.condarc
populated config files :
conda version : 24.5.0
conda-build version : error
python version : 3.12.4.final.0
solver : libmamba (default)
virtual packages : __archspec=1=x86_64_v4
__conda=24.5.0=0
__cuda=12.6=0
__win=0=0
base environment : C:\ProgramData\anaconda3 (writable)
conda av data dir : C:\ProgramData\anaconda3\etc\conda
conda av metadata url : None
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\ProgramData\anaconda3\pkgs
C:\Users\Administrator\.conda\pkgs
C:\Users\Administrator\AppData\Local\conda\conda\pkgs
envs directories : C:\ProgramData\anaconda3\envs
C:\Users\Administrator\.conda\envs
C:\Users\Administrator\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/24.5.0 requests/2.32.2 CPython/3.12.4 Windows/2022Server Windows/10.0.20348 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.8
administrator : True
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>
故障处理:检查错误描述显示,出错时Anaconda尝试使用GBK编码解析某个文件,但在头部第一个字符遇到编号为0xFF的字符导致出错。怀疑某个文件错误地使用了带字节顺序标记(Byte Order Mark,BOM)的UTF-16 LE编码格式保存(0xFF 0xFE表示UTF-16 LE,0xFE 0xFF表示UTF-16 BE,0xEF 0xBB 0xBF表示UTF-8,0xFF 0xFE 0x00 0x00表示UTF-32 LE,0x00 0x00 0xFE 0xFF表示UTF-32 BE)。
进一步检查发现,位于%UserProfile%\目录下的.condarc配置文件在某次修改软件包源后,被错误地使用带BOM的UTF-16 LE存储,将该文件编码方式改为无BOM的UTF-8,故障解决。
参考资料:
页面版本: 1, 最后编辑于: 24 Feb 2025 13:21