NameError: name 'reload' is not defined
BT宝塔面板 升级后计划任务备份数据库脚本出现错误:NameError: name 'reload' is not defined
BT宝塔面板 升级后计划任务备份数据库脚本出现了很多错误
不记得是因为升级BT宝塔面板,还是自己升级了Python的版本,所以导致了这个错误。
但是看文件,有很多同名,不同扩展名的文件,所以推测还是BT宝塔面板 升级导致的Bug。
一,SyntaxError: Missing parentheses in call to 'print'. Did you mean print("★["+endDate+"] "+log)?
错误语句:print "★["+endDate+"] "+log
Python 2.X print 是不需要加括号的。
二,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)
参考网站:
Reloading module giving NameError: name ‘reload’ is not defined
三、sys.setdefaultencoding("utf-8")
上面第二个错误中已经说过,Python 3 的情况,就不需要sys.setdefaultencoding("utf-8")这段代码。
四、SyntaxError: invalid syntax
Traceback (most recent call last):
File "/www/server/panel/script/backup.py", line 14, in <module>
import public,db,time
File "class/db.py", line 34
except Exception,ex:
^
解决方法:将 except Exception,ex 改为 except Exception as ex
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/service/2022-02-08/1026.html