Подтвердить что ты не робот

Type object 'datetime.datetime' не имеет атрибута 'datetime'

Я следую учебнику django, и я получил следующую ошибку:

Тип объекта 'datetime.datetime' не имеет атрибута 'datetime'

В следующей строке:

date = datetime.datetime(int(year), int(month), 1)

Кто-нибудь знает причину ошибки?

Я импортировал datetime с from datetime import datetime, если это помогает

Спасибо

4b9b3361

Ответ 1

Datetime - это модуль, который позволяет обрабатывать даты, время и время (все из которых являются типами данных). Это означает, что datetime является одновременно модулем верхнего уровня, а также является типом внутри этого модуля. Это запутывает.

Вероятно, ваша ошибка основана на запутанном наименовании модуля, и то, что уже вы или модуль, который вы используете, уже импортировали.

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

Но если вы импортируете datetime.datetime:

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

Я подозреваю, что вы или один из модулей, которые вы используете, импортировали вот так:   from datetime import datetime.

Ответ 2

Для python 3.3

from datetime import datetime, timedelta
futuredate = datetime.now() + timedelta(days=10)

Ответ 3

Вы должны использовать

date = datetime(int(year), int(month), 1)

Или измените

from datetime import datetime

к

import datetime

Ответ 4

Если вы использовали:

from datetime import datetime

Затем просто напишите код как:

date = datetime(int(year), int(month), 1)

Но если вы использовали:

import datetime

тогда вы можете написать:

date = datetime.datetime(int(2005), int(5), 1)