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

在Python 3.6环境下安装Scrapy时遇到UnicodeDecodeError,错误信息显示'utf-8' codec无法解码字节0xc8。问题定位在文件site-packages/pip/compat/__init__.py的第73行。解决方案包括将sys.__stdout__.encoding临时改为'gbk',安装成功后再改回'utf-8',或者尝试其他方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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’ ?


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值