您的位置:首页 > 编程语言 > Python开发

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

2017-07-05 10:04 671 查看
python 3.6;安装scrapy框架 ;报错;UnicodeDecodeError:'utf-8' codec can't decode byte 0xc8 in position 3: invalid continuation byte

Exception:

Traceback (most recent call last):

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str

    return s.decode(sys.__stdout__.encoding)

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

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\basecommand.py", line 215, in main

    status = self.run(options, args)

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\commands\install.py", line 342, in run

    prefix=options.prefix_path,

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\req\req_set.py", line 784, in install

    **kwargs

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\req\req_install.py", line 878, in install

    spinner=spinner,

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess

    line = console_to_str(proc.stdout.readline())

  File "d:\program files (x86)\python\python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str

    return s.decode('utf_8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 3: invalid continuation byte

根据trackback信息找到文件d:\program files (x86)\python\python36\lib\site-packages\pip\compat\__init__.py

相关代码为



sys.__stdout__.encoding指的是什么呢?根据 'utf-8' codec can't decode byte 0xc8 in position 3: invalid continuation byte

应该是utf-8

方法一:

我们把73行的sys.__stdout__.encoding改为‘gbk’ 就万事大吉了。

具体为什么是‘gbk ’ 因为被‘gbk’虐太多次了一有问题基本上就是这个玩意,也可能是Windows系统的原因

ctrl+s保存下

重新输入安装命令pip install Scrapy







安装成功后,我选择把sys.__stdout__.encoding改回去(虽然以后都在win下弄,但还是小心点好。。),小心翼翼的


方法二(未测试):

import
 
sys


sys.setdefaultencoding(
'gbk
'
)


#把sys.__stdout__.encoding改成‘gbk’ ?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐