1. 程式人生 > >Python 解決 :NameError: name 'reload' is not defined 問題

Python 解決 :NameError: name 'reload' is not defined 問題

註意 nco not 不存在 highlight brush 一個 分析 attribute

Python 解決 :NameError: name ‘reload‘ is not defined 問題

解決:NameError: name ‘reload‘ is not defined 問題

對於 Python 2.X:

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

對於 <= Python 3.3:

import imp
imp.reload(sys)

註意:

1. Python 3 與 Python 2 有很大的區別,其中Python 3 系統默認使用的就是utf-8編碼。
2. 所以,對於使用的是Python 3 的情況,就不需要sys.setdefaultencoding("utf-8")這段代碼。
3. 最重要的是,Python 3 的 sys 庫裏面已經沒有 setdefaultencoding() 函數了。
對於 >= Python 3.4:

import importlib
importlib.reload(sys)

基於python3.6.1版本,在一個.py文件中,加入這3行:

import requests, re, sys
reload(sys)
sys.setdefaultencoding("utf-8")

出現這樣的錯誤:

sys.setdefaultencoding("utf-8")
AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘

原因分析:

Python3字符串默認編碼unicode, 所以sys.setdefaultencoding也不存在了

解決:

去掉,sys.setdefaultencoding

Python 解決 :NameError: name 'reload' is not defined 問題