Python 解决 :NameError: name 'reload' is not defined 问题

背景

最近将公司jenkins的一台windows节点机,python有2.XX升到3.XX,之前写的python脚本运行就出错了,总结下这个过程中遇到的一些问题。

对于 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)

参考网站:
Reloading module giving NameError: name ‘reload’ is not defined
http://stackoverflow.com/questions/961162/reloading-module-giving-nameerror-name-reload-is-not-defined

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容