Datetime ist ein Modul, mit dem Datums-, Uhrzeit- und Datumsangaben (alle Datentypen) verarbeitet werden können. Dies bedeutet, dass dies datetime
sowohl ein Modul der obersten Ebene als auch ein Typ innerhalb dieses Moduls ist. Das ist verwirrend.
Ihr Fehler basiert wahrscheinlich auf der verwirrenden Benennung des Moduls und darauf, was Sie oder ein von Ihnen verwendetes Modul bereits importiert haben.
>>> import datetime
>>> datetime
<module 'datetime' from '/usr/lib/python2.6/lib-dynload/datetime.so'>
>>> datetime.datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
Wenn Sie jedoch datetime.datetime importieren:
>>> from datetime import datetime
>>> datetime
<type 'datetime.datetime'>
>>> datetime.datetime(2001,5,1) # You shouldn't expect this to work
# as you imported the type, not the module
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
>>> datetime(2001,5,1)
datetime.datetime(2001, 5, 1, 0, 0)
Ich vermute, Sie oder eines der von Ihnen verwendeten Module wurde folgendermaßen importiert :
from datetime import datetime
.
Für Python 3.3
quelle
import datetime
from datetime import datetime
Du solltest benutzen
Oder ändern
zu
quelle
Sie sollten das Modul wirklich in einen eigenen Alias importieren .
Das Obige hat gegenüber den anderen Lösungen die folgenden Vorteile:
my_datetime
anstelle vondate
Verwirrung verringert die Verwirrung, dadate
das datetime-Modul (datetime.date
) bereits eine enthält .datetime
) beschatten sich nicht gegenseitig.quelle
Wenn Sie verwendet haben:
Dann schreiben Sie einfach den Code wie folgt:
Aber wenn Sie verwendet haben:
dann kannst nur du schreiben:
quelle
Ich fand das viel einfacher
quelle
Ich stoße auf den gleichen Fehler, vielleicht haben Sie das Modul bereits importiert, indem Sie nur verwenden,
import datetime
also wechseln Sieform datetime import datetime
zu nurimport datetime
. Es hat bei mir funktioniert, nachdem ich es wieder geändert habe.quelle
quelle