运维日志您现在的位置是:首页 > 博客日志 > 运维日志

NameError: name 'reload' is not defined

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-02-08运维日志 4 0关键字:   

BT宝塔面板 升级后计划任务备份数据库脚本出现错误:NameError: name 'reload' is not defined

BT宝塔面板 升级后计划任务备份数据库脚本出现了很多错误DhW无知

不记得是因为升级BT宝塔面板,还是自己升级了Python的版本,所以导致了这个错误。DhW无知

但是看文件,有很多同名,不同扩展名的文件,所以推测还是BT宝塔面板 升级导致的Bug。DhW无知


DhW无知

image.pngDhW无知


DhW无知

一,SyntaxError: Missing parentheses in call to 'print'. Did you mean print("★["+endDate+"] "+log)?DhW无知

错误语句:print "★["+endDate+"] "+log DhW无知

Python 2.X print 是不需要加括号的。DhW无知


DhW无知

二,NameError: name 'reload' is not definedDhW无知


DhW无知

对于 Python 2.X:DhW无知

import sysDhW无知

reload(sys)DhW无知

sys.setdefaultencoding("utf-8")DhW无知


DhW无知


DhW无知

对于 <= Python 3.3:DhW无知

import impDhW无知

imp.reload(sys)DhW无知


DhW无知

注意:DhW无知

1. Python 3 与 Python 2 有很大的区别,其中Python 3 系统默认使用的就是utf-8编码。DhW无知

2. 所以,对于使用的是Python 3 的情况,就不需要sys.setdefaultencoding("utf-8")这段代码。DhW无知

3. 最重要的是,Python 3 的 sys 库里面已经没有 setdefaultencoding() 函数了。DhW无知


DhW无知

对于 >= Python 3.4:DhW无知

import importlibDhW无知

importlib.reload(sys)DhW无知


DhW无知

参考网站:DhW无知

Reloading module giving NameError: name ‘reload’ is not definedDhW无知


DhW无知

http://stackoverflow.com/questions/961162/reloading-module-giving-nameerror-name-reload-is-not-defined


DhW无知

三、sys.setdefaultencoding("utf-8")DhW无知

上面第二个错误中已经说过,Python 3 的情况,就不需要sys.setdefaultencoding("utf-8")这段代码。DhW无知


DhW无知

四、SyntaxError: invalid syntaxDhW无知

Traceback (most recent call last):DhW无知

  File "/www/server/panel/script/backup.py", line 14, in &lt;module&gt;DhW无知

    import public,db,timeDhW无知

  File "class/db.py", line 34DhW无知

    except Exception,ex:DhW无知

                    ^DhW无知

解决方法:将 except Exception,ex  改为 except Exception as exDhW无知


DhW无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-02-08/1026.html

很赞哦! () 有话说 ()

相关文章