1. 程式人生 > >NameError: name 'reload' is not defined等python版本問題解決方案

NameError: name 'reload' is not defined等python版本問題解決方案

        python2.x和python3.x之間相差很多,有很多語法知識已經不再適用於新的python版本,下面簡單列出3個錯誤:

一、pickle.load錯誤:a bytes-like object is required, not 'str'

pickle(除了最早的版本外)是二進位制格式的,所以應該帶 'b' 標誌開啟檔案;

f=open('./a.txt','rb')
label_dict = pickle.load(f)

二、TypeError: slice indices must be integers or None or have an __index__ method

由於除法/自動產生的型別是浮點型,因此出現上述錯誤,修正方法為,將/更改為//;

start_width = (width_large - width_small) // 2
start_height = (height_large - height_small) // 2

三、 NameError: name 'reload' is not defined

python版本導致:

(1)對於 Python 2.X

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

(2)對於 <= Python 3.3

import imp
imp.reload(sys)

(3)對於>= Python 3.4

import sys
import importlib
importlib.reload(sys)