org-mode – ¿Cómo importo __future__ en babel en modo org?

Pregunta:

Intentar evaluar un bloque fuente de babel que contiene una importación __future__ y también usa a :var hace que Python escupe

  File "<stdin>", line 2
SyntaxError: from __future__ imports must occur at the beginning of the file

Presumiblemente, babel está pegando las definiciones :var antes de la primera línea de mi código. ¿Cómo puedo evitar que babel haga esto?

Ejemplo de falla mínima:

#+NAME: data
| Hi | 2 |

#+BEGIN_SRC python :var data=data
  from __future__ import print_function
  print(*data)
#+END_SRC

Respuesta:

Puede utilizar el argumento del encabezado del prologue . Como esto:

#+NAME: data
| Hi  | 2 |
| Bye | 3 |

#+name: test-py27-with-print-function
#+header: :prologue "from __future__ import print_function"
#+BEGIN_SRC python :var data=data :results output list
  for row in data:
      print(*row)
#+END_SRC

#+RESULTS: test-py27-with-print-function
: - Hi 2
: - Bye 3

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım