如何解决UnicodeDecodeError:'charmap'编解码器无法解码位置23的字节0x90:启动anaconda提示符时,字符映射到<undefined>
当我打开anaconda提示符时,它向我返回此错误:
Fatal Python error: init_import_size: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
File "C:\Users\username\Anaconda3\lib\site.py",line 580,in <module>
main()
File "C:\Users\username\Anaconda3\lib\site.py",line 567,in main
known_paths = addsitepackages(known_paths)
File "C:\Users\username\Anaconda3\lib\site.py",line 350,in addsitepackages
addsitedir(sitedir,known_paths)
File "C:\Users\username\Anaconda3\lib\site.py",line 208,in addsitedir
addpackage(sitedir,name,line 164,in addpackage
for n,line in enumerate(f):
File "C:\Users\username\Anaconda3\lib\encodings\cp1252.py",line 23,in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 23: character maps to <undefined>
我通读了其他类似错误的问题,解决方案是在file = open中添加encoding ='utf8'或errors ='ignore',但在site.py中看不到任何类似功能
它说它在enumerate(f)上失败了,我不明白出了什么问题。 请帮忙。
site.py中的代码行:
def addpackage(sitedir,known_paths):
"""Process a .pth file within the site-packages directory:
For each line in the file,either combine it with sitedir to a path
and add that to known_paths,or execute it if it starts with 'import '.
"""
if known_paths is None:
known_paths = _init_pathinfo()
reset = True
else:
reset = False
fullname = os.path.join(sitedir,name)
try:
f = io.TextIOWrapper(io.open_code(fullname))
except OSError:
return
with f:
for n,line in enumerate(f):
if line.startswith("#"):
continue
try:
if line.startswith(("import ","import\t")):
exec(line)
continue
line = line.rstrip()
dir,dircase = makepath(sitedir,line)
if not dircase in known_paths and os.path.exists(dir):
sys.path.append(dir)
known_paths.add(dircase)
except Exception:
print("Error processing line {:d} of {}:\n".format(n+1,fullname),file=sys.stderr)
import traceback
for record in traceback.format_exception(*sys.exc_info()):
for line in record.splitlines():
print(' '+line,file=sys.stderr)
print("\nRemainder of file ignored",file=sys.stderr)
break
if reset:
known_paths = None
return known_paths
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。