requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ...

今天一位同学提出安装不上requests的问题,我想起我前几天也弄了好久才安装好requests。

一、先说安装requests的方法:

1.通过pip安装

pip install requests

2.下载安装包后安装:

安装包:http://docs.python-requests.org/en/latest/user/install/#install

解压安装包到python2.7的根目录下,然后使用cmd命令定位到解压文件夹目录使用

python setup.py install

进行安装

测试:在IDLE中输入import requests,如果没提示错误,那说明已经安装成功了!


二、然后:那位同学他今天是这样的问题

requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ..._第1张图片

安装不上,下载了安装包也不行。后来才发现是开着代理软件的原因。关闭代理软件,就可以了。


三、最后、我那天遇到的情况是这样的:

requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ..._第2张图片

requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ..._第3张图片requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ..._第4张图片

如上, 虽然如上图,的意思是已经装好了,但是 我一直以为requests没有装好,所以卸载重装之类的弄了好久还是没有用。
真正原因其实是代码的问题!!
查到 报错 UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinal not in range(128) 的原因:
python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为 utf8 的编码格式或者GB18030 (中国的标准,国标(GB),就是如何表示一个字符)

在程序开头加上这段就好了:

import sys
reload (sys)
# sys.setdefaultencoding('utf8')
sys.setdefaultencoding('gb18030')
此处使用gb18030,因为使用utf8还会报错:
就是这样喽
UnicodeDecodeError: 'utf8' codec can't decode byte 0xd3 in position 3: invalid continuation byte




这是2018/2/9后续:(继续解决UnicodeDecodeError!)

    今天在安装scrapy后,在cmd命令行下使用scrapy指令又出现了这个问题:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinal not in range(128)

各种百度增加代码没有结果。比如如下方法,都不管用:

http://blog.csdn.net/hk2291976/article/details/51161297

http://www.360doc.com/content/14/0508/00/7821691_375668317.shtml

最后找到了一个正确的解决思路,成功解决问题:

http://blog.csdn.net/lusongno1/article/details/62891860

他说的一句话我觉得很经典:遇到问题一定要静下心来,认真分析,不要像无头苍蝇似了,复制黏贴错误信息到浏览器,乱试别人的解决方法。知其然不知所以然,最后只会一团糟。

下面看下解决方法:

requests安装和UnicodeDecodeError: 'ascii' codec can't decode byte 0xd3 in position 1: ordinalnot in ..._第5张图片

错误提示说“ascii”不能解码,说明这部分代码所用的命令让它解码出错了。给两个变量加个str(),不让他误解码,问题就解决了。
找到UnicodeDecodeError:的上一行路径打开ntpath.py文件找到错误信息:
result_path = result_path + p_path 将它改为 result_path = str(result_path) + str(p_path)就oK了!



你可能感兴趣的:(Python)