坑1: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 24: invalid continuation

在使用conda创建新环境时遇到UnicodeDecodeError,错误提示涉及'utf-8'编码。经过排查发现,此前为运行CNN代码将Linux系统编码改为GBK。修复方法包括修改.bash_profile文件,将GBK编码恢复为UTF-8,避免后续的系统中文乱码问题。

今天在用实验室服务器创建新的环境的时候发现,当我使用:

 conda create --name ALi_euler  # 创建新的环境

一直报这个错误:

Collecting package metadata (current_repodata.json): failed

# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<

    Traceback (most recent call last):
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/gateways/connection/session.py", line 52, in __call__
        return cls._thread_local.session
    AttributeError: '_thread._local' object has no attribute 'session'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/exceptions.py", line 1062, in __call__
        return func(*args, **kwargs)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/cli/main.py", line 84, in _main
        exit_code = do_call(args, p)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 82, in do_call
        exit_code = getattr(module, func_name)(args, parser)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/cli/main_install.py", line 20, in execute
        install(args, parser, 'install')
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/cli/install.py", line 256, in install
        force_reinstall=context.force_reinstall or context.force,
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 112, in solve_for_transaction
        force_remove, force_reinstall)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 150, in solve_for_diff
        force_remove)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 249, in solve_final_state
        ssc = self._collect_all_metadata(ssc)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/common/io.py", line 88, in decorated
        return f(*args, **kwds)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 389, in _collect_all_metadata
        index, r = self._prepare(prepared_specs)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 974, in _prepare
        self.subdirs, prepared_specs, self._repodata_fn)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/index.py", line 214, in get_reduced_index
        repodata_fn=repodata_fn)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 91, in query_all
        result = tuple(concat(executor.map(subdir_query, channel_urls)))
      File "/home/deng/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 586, in result_iterator
        yield fs.pop().result()
      File "/home/deng/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 425, in result
        return self.__get_result()
      File "/home/deng/anaconda3/lib/python3.7/concurrent/futures/_base.py", line 384, in __get_result
        raise self._exception
      File "/home/deng/anaconda3/lib/python3.7/concurrent/futures/thread.py", line 57, in run
        result = self.fn(*self.args, **self.kwargs)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 87, in <lambda>
        package_ref_or_match_spec))
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 96, in query
        self.load()
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 160, in load
        _internal_state = self._load()
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 234, in _load
        repodata_fn=self.repodata_fn)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 456, in fetch_repodata_remote_request
        session = CondaSession()
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/gateways/connection/session.py", line 54, in __call__
        session = cls._thread_local.session = super(CondaSessionType, cls).__call__()
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/gateways/connection/session.py", line 85, in __init__
        self.headers['User-Agent'] = context.user_agent
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/_vendor/auxlib/decorators.py", line 268, in new_fget
        cache[inner_attname] = func(self)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/base/context.py", line 648, in user_agent
        builder.append("%s/%s" % self.os_distribution_name_version)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/_vendor/auxlib/decorators.py", line 268, in new_fget
        cache[inner_attname] = func(self)
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/base/context.py", line 690, in os_distribution_name_version
        from .._vendor.distro import id, version
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/_vendor/distro.py", line 1084, in <module>
        _distro = LinuxDistribution()
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/_vendor/distro.py", line 600, in __init__
        if include_lsb else {}
      File "/home/deng/anaconda3/lib/python3.7/site-packages/conda/_vendor/distro.py", line 934, in _get_lsb_release_info
        stdout, stderr = stdout.decode('utf-8'), stderr.decode('utf-8')
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 24: invalid continuation byte

刚开始还以为是我linux 指令不熟悉,没创建对,后来发现用conda 安装包也是这个错误,一下子把我给打蒙了。在网上查找了无数的资料,都没找到问题所在,后来仔细看了一下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 24: invalid continuation byte

应该与linux 系统编码‘uft-8’有关,突然向前之前因为跑cnn代码的时候,由于系统不支持中文,我好想把系统编码设置成GBK了,后来一查:

(base) [deng@node3 ~]$ locale
LANG=zh_CN.GBK
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK

果然如此,最后通过将GBK编码改回UFT-8编码才解决:

1、首先打开.bash_profile文件

vim .bash_profile

然后添加下面两条语句,按ESC+wq 退出 

LANG=zh_CN.UTF-8
LC_ALL=en_US.UTF-8

最后运行一下:

source .bash_profile

修改成功够的结果:
 

LANG=zh_CN.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8

但是随之而来又有另外一个问题,就是系统中文乱码,所以后面我还得好好学习一下Linux操作,等到找到合适方法我再更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值