Объект 'module' не имеет атрибута 'now' будет пытаться создать CSV

Привет, у меня проблемы с импортом в csv, я получаю эту ошибку, проблема в том, что у меня такой же код работает на другой машине, и он работает отлично. Что мне не хватает, мне нужно установить для этого другую библиотеку?.

def exportar_a_csv_grl(request):
    #Fecha actual
    hoy = datetime.now().date()
    #Creado el:
    creado_hoy = hoy.strftime("%m/%d/%Y")
    response = HttpResponse(mimetype='text/csv')
    response['Content-Disposition'] = 'attachment;filename="Reporte de Miembros ' +      creado_hoy + '.csv"'
response['Content-Type'] = 'text/csv; charset=utf-8'
response.write("\xEF\xBB\xBF")

writer = csv.writer(response)
miembros = Miembro.objects.all().extra(select={'miem_monto': "aplicacionmediexcel_miembro_monto.monto"},
                                       tables=["aplicacionmediexcel_miembro_monto"], where=[
        """aplicacionmediexcel_miembro.id=aplicacionmediexcel_miembro_monto.miembro_id"""])
#.extra(select = {'precio':'''select aplicacionmediexcel_miembro_monto.monto from aplicacionmediexcel_miembro_monto, aplicacionmediexcel_miembro where  aplicacionmediexcel_miembro.id = aplicacionmediexcel_miembro_monto.miembro_id'''})
miembros_colec = Miembro_colec.objects.all().extra(
    select={'miem_monto': "aplicacionmediexcel_colectivo_miembro_monto.monto"},
    tables=["aplicacionmediexcel_colectivo_miembro_monto"],
    where=["""aplicacionmediexcel_miembro_colec.id=aplicacionmediexcel_colectivo_miembro_monto.miembro_colec_id"""])
dependientes = Dependiente.objects.all()
dependientes_colec = Dependiente_colec.objects.all()
writer.writerow(['Creado el:             ' + creado_hoy + ' '])
writer.writerow([''])
#csv_data = (
#   ('ID Miembro', 'Apellido Paterno', 'Nombre', 'MI', 'Numero de Seguro Social', 'Tipo de contratacion','Tier', 'Tipo de dependiente', 'Fecha de nacimiento', 'Edad', 'Sexo', 'Estado Civil', 'Correo Electronico', 'Domicilio', 'Ciudad','Estado', 'Codigo Postal', 'Telefono', 'Idioma', 'Region de servicio', 'Medico', 'Fecha Efectiva', 'Tipo Plan', 'Grupo', 'Monto'),
#)
writer.writerow(
    ['ID Miembro', 'Apellido Paterno', 'Nombre', 'MI', 'Número de Seguro Social', 'Tipo de contratación',
     'Tier', 'Tipo de dependiente', 'Fecha de nacimiento', 'Edad', 'Sexo', 'Estado Civil', 'Correo Electrónico',
     'Domicilio', 'Ciudad',
     'Estado', 'Código Postal', 'Teléfono', 'Idioma', 'Región de servicio', 'Médico', 'Actividad', 'Fecha Efectiva',
     'Fecha Renovación', 'Tipo Plan', 'Grupo', 'Monto'])

#t = loader.get_template('my_template_name.txt')
#c = Context({
#   'miembros': miembros,
#})
#response.write(t.render(c))

Ответы

Ответ 1

Вы, вероятно, имеете

import datetime

измените это на

from datetime import datetime

Демо-версия:

>>> import datetime
>>> datetime.now()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'now'
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2013, 10, 7, 13, 57, 18, 456504)
>>> 

Кроме того, вы столкнетесь с проблемами из-за отступов. Пожалуйста, исправьте их.

Ответ 2

Когда вы это сделаете

import datetime

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

>>> datetime.datetime.now()
datetime.datetime(2016, 12, 14, 1, 15, 58, 606802)

в противном случае, если вы импортируете

>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2016, 12, 14, 1, 17, 31, 772406)

Но на какой-то машине вы могли ссылаться на неправильный модуль datetime из-за sys.path, вместо того, чтобы делать from datetime import datetime или import datetime сделать привычку использовать

from datetime import datetime as dt

Ответ 3

У меня была такая же проблема, когда я использовал

from datetime import datetime,date,timedelta
import pytz
utc=pytz.UTC
today = datetime.now().replace(tzinfo=utc)

Решение для этого, которое я предлагаю, заключается в том, чтобы импортировать все зависимости

from datetime import *
import pytz
utc=pytz.UTC
today = datetime.now().replace(tzinfo=utc)