【问题小记】reload(sys)报错

目录

一、reload(sys)用处

二、报错信息

三、解决办法


一、reload(sys)用处


sys能够访问 Python 解释器在运行时的环境。在 Python 程序运行时,由于模块导入顺序不同,可能会导致 sys 模块无法正确加载。而 reload(sys) 就是重新加载 sys 模块,从而保证模块正确加载。

二、报错信息


python2.x版本中,python默认的编码方式是ASCII编码,当程序中出现非ASCII编码时,程序会报错 

解决这个问题的方法是修改python的默认编码方式,在脚本头部中添加: 

import sys
reload(sys)
sys.setdefaultencoding('utf-8') 

 但是在python3版本中系统默认使用的就是utf-8编码,使用上述代码会报错:

NameError: name 'reload' is not defined

 三、解决办法


Python 2.7 及以下版本 :

import sys
reload(sys)
sys.setdefaultencoding('utf8')

Python 3.3及以下版本:

import imp
imp.reload(sys)

Python 3.4及以上版本:

import importlib
importlib.reload(sys)

由于python3版本中系统默认使用的就是utf-8编码,对于使用的是Python 3 的情况,就不需要sys.setdefaultencoding("utf-8")这段代码 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值