今天在公司的win7 电脑上在配置好Python并安装上pip后,打算用pip安装一些常用包。但是安装包的时候出现了错误,是在之前电脑上都没有出现的。然后网上查询知道了原因。是编码问题
看最后的报错信息,这个一般都是从开始追溯信息源:
UnicodeDecodeError:‘ascii’codec can’t decode byte 0xe9 inposition 7: ordinal not in range
'UnicodeDecodeError'这个词已经暴露了这个问题是个编码问题
问题出现原因:pip把下载的临时文件存放在了用户临时文件中,这个目录一般是C:\Users\用户名\AppData\Local\Temp,目录名中有中文,显然ascii这种编码是不支持的
公司电脑的用户名是中文的,我自己电脑是administrator。因此之前没有发现这个问题
解决办法:
然后在网上找的了下面的解决办法,对比试过几个方法后,选择下面的简单推荐给大家。亲测有效
1)python目录 Python27\Lib\site-packages (我自己的目录地址 D:\Python27\Lib\site-packages)
2)建一个文件sitecustomize.py
3)内容写:
import sys
sys.setdefaultencoding('gb2312')
python会自动运行这个文件。然后输入下载安装命令就可以了。
然后就可以正常使用pip下载了
如果还是不行,或者过了一段时间又不行了,就像我,一个月后再使用还是报错,之前的sitecustomize.py 内容变了,替换为原来的也不行。这个时候找到了第2个方法
1、进入到 “XXX\Python27\Lib”
2.找到 “mimetypes.py”
3.粘贴如下代码在 import sys 下,保存
4、再次执行 pip install就可以成功的安装类库啦
if sys.getdefaultencoding() != 'GBK':
reload(sys)
sys.setdefaultencoding('GBK')