我在使用AppEngine时,遇到了“type object 'datetime.datetime' has no attribute 'datetime'”的错误提示,这是关于datetime类型的问题,但是我已经导入了“import datetime”。其它文件中有“from datetime import datetime”的引用,但我认为这不应该影响到这个文件。
我检查过代码,没有“意外”的重新导入。我查看了AppEngine日志,发现这个问题仅发生在两天前。
我的运行环境是2.7版。
编辑:这是导致错误的代码行(请注意,我使用的是“import datetime”,而不是“from datetime import datetime”)。
有没有一种方法可以在当前文件或模块之外重新定义变量?因为我已经仔细查看了这个文件,没有重新定义变量。
编辑4:
我已经使用了ack命令查找了"datetime ="、"datetime="、"datetime.datetime ="和"datetime.datetime=",但是没有结果表明有重新赋值。我检查了过去两天的git日志,也没有可能引入它的更改。
我检查过代码,没有“意外”的重新导入。我查看了AppEngine日志,发现这个问题仅发生在两天前。
我的运行环境是2.7版。
编辑:这是导致错误的代码行(请注意,我使用的是“import datetime”,而不是“from datetime import datetime”)。
task.due_at = datetime.datetime.strptime(date, '%Y-%m-%d %I:%M%p')
编辑:堆栈跟踪
type object 'datetime.datetime' has no attribute 'datetime'
Traceback (most recent call last):
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.1/webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/s~wmphighrise/1.373696587983821954/myapp/handler/decorators.py", line 22, in wrapper
return fn(*args, **kwargs)
File "/base/data/home/apps/s~wmphighrise/1.373696587983821954/myapp/handler/api/main.py", line 1343, in post
task.due_at = datetime.datetime.strptime(date, '%Y-%m-%d %I:%M%p')
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
编辑3:一些调试
注意:import datetime
在顶部
#1st attempt
import datetime
class MyHandler():
def get(self):
logging.info(datetime) # => "<type 'datetime.datetime'>"
#2nd attempt
import datetime
class MyHandler():
def get(self):
import datetime # explicitly re-import the module
logging.info(datetime) # => "<module 'datetime' (built-in)>"
#3rd attempt
import datetime
class MyHandler():
def get(self):
logging.info(datetime) # => Throws UnboundLocalError: local variable 'datetime' referenced before assignment
# Is this normal? This is new to me.
import datetime
logging.info(datetime)
#4th attempt
import datetime
logging.info(datetime) # => "<module 'datetime' (built-in)>"
class MyHandler():
def get(self):
logging.info(datetime) # => "<type 'datetime.datetime'>"
有没有一种方法可以在当前文件或模块之外重新定义变量?因为我已经仔细查看了这个文件,没有重新定义变量。
编辑4:
我已经使用了ack命令查找了"datetime ="、"datetime="、"datetime.datetime ="和"datetime.datetime=",但是没有结果表明有重新赋值。我检查了过去两天的git日志,也没有可能引入它的更改。
datetime.datetime.datetime
。你在你的梦境中深入了一层。 - mhlesterdatetime
模块。它应该有一个datetime.datetime
类型的类。 - john2x