теперь() не распознается в модуле

#python #datetime #python-3.7 #python-datetime

Вопрос:

У меня есть модуль, который содержит метку времени, используемую другими функциями в модуле

 import datetime, time
from datetime import date, timedelta, datetime
def tsp():           #Timestamp
    return datetime.now().strftime("%x %X")   'n'
 

Если этот же код включен непосредственно в качестве функции в записную книжку jupyter, он работает.

 import datetime, time
from datetime import date, timedelta, datetime

def tsp(full=False):           #Timestamp
    return datetime.now().strftime("%x %X")   'n'

#import test_tsp
#from test_tsp import *
print('Hello ' tsp())
 

Здравствуйте 15.10.2011 15:59:05

Закомментируйте «def» и раскомментируйте 2 инструкции импорта, и появится сообщение об ошибке:

      23 def tsp():           #Timestamp
---> 24     return datetime.now().strftime("%x %X")   'n'
     25 
AttributeError: module 'datetime' has no attribute 'now'
 

Я пробовал datetime.datetime.now() , datetime.now() , и now() . Та же ошибка. python версии 3.7

Комментарии:

1. Если у вас есть from datetime import ... , то вам не нужно import datetime

2. datetime.datetime.now()

3. Это правда. import datetime as dt это мое 100% решение, и оно просто позволяет избежать двусмысленности

4. Я бы хотел, чтобы класс datetime не был в модуле с таким же именем datetime . Имя модуля в порядке (хотя datetimeutils могло бы быть более описательным); имя класса должно было быть примерно таким DateTime .

5. если вы используете import datetime , то вы должны использовать datetime.datetime.now() . Если вы импортируете from datetime import datetime , то вам следует использовать datetime.now() . Но может быть и другая проблема — у вас может быть собственный файл datetime.py , и он может импортировать ваш файл, но не может быть найден now() в вашем файле. Вам следует проверить print( datetime.__file__ ) , используете ли вы собственный файл или модуль datetime . Если у вас есть файл onw datetime.py , вам придется его переименовать.