Non è possibile utilizzare le istruzioni from __future__ import
nei modelli Mako. Affatto.
Questo perché un modello di Mako viene compilato in un file python, e in modo che questo funzioni Esso definisce alcune strutture iniziali nella parte superiore di tale file python:
# -*- encoding:ascii -*-
from mako import runtime, filters, cache
UNDEFINED = runtime.UNDEFINED
__M_dict_builtin = dict
__M_locals_builtin = locals
_magic_number = 7
_modified_time = 1348257499.1626351
_template_filename = '/tmp/mako.txt'
_template_uri = '/tmp/mako.txt'
_source_encoding = 'ascii'
_exports = []
Solo dopo questo l'installazione iniziale è qualsiasi codice dal modello stesso incluso. Il tuo from __future__ import division
non verrà mai inserito per primo.
è comunque possibile utilizzare la divisione in virgola mobile lanciando uno degli operandi dell'operatore /
divisione ad un galleggiante:
>>> 1/2
0
>>> float(1)/2
0.5
Finché si segue questa soluzione si può fare bene anche senza il futuro di importazione division
.
fonte
2012-09-21 20:03:28
Sì, l'ho visto dal debug (e che l'errore era sulla linea 17), ma Mike Bayer (techspot.zzzeek.org) è così intelligente, ho pensato che avesse un alloggio per questo. Inoltre, 'division' non è l'unica importazione futura (' with' viene in mente). Stavo usando 'float()' prima di provare questo. – Hollister
Dovresti inserire una richiesta di funzione per avere le istruzioni 'from __future__ with' spostate all'inizio dell'output python per il modello. Ma dal momento che tali importazioni potrebbero alterare il modello di impalcatura che significa anche se stesso, non sono sicuro che sarebbe una buona idea e accettato da Mike Bayer o dagli altri manutentori di Mako. –