Ich möchte in der Lage sein, Warnungen und Fehler bei der Auswertung eines Python-Codeblocks in einer Org-Datei zu melden.
Wenn ein Codeblock Python-Syntaxfehler aufweist, wird diese von Org in einem separaten Puffer namens aufgerufen *Org-Babel Error Output*
. Es wäre schön, dort auch meine eigenen Warnungen senden zu können und gleichzeitig die Möglichkeit zu behalten, ein Array-Ergebnis als Tabelle mit in den Org-Modus zurückzugeben :results value
.
Um es klar auszudrücken, hier ist ein Dummy-Beispiel für die Art von Dingen, von denen ich dachte, dass sie funktionieren könnten:
#+BEGIN_SRC python
import sys
sys.stderr.write('Warning.\n')
sys.stderr.flush()
return [['Table', 'header'], ['table', 'data']]
#+END_SRC
#+RESULTS:
| Table | header |
| table | data |
Zum Hinzufügen bearbeitet: Diese Diskussion in der Liste der Organisationsmodi legt nahe, dass die Fehlerausgabe nur angezeigt wird, wenn die Codeblockauswertung fehlschlägt. Es sieht also so aus, als wäre dies möglich, aber nur durch Abbrechen der Auswertung mit exit(1)
oder ähnlich.
Antworten:
Wie von Eric Schulte auf der
org-mode
Mailingliste beschrieben (siehe den Link in der Frage), können wir dies ändernorg-babel-eval
, um dies zu erreichen:Wenn nun
org-babel-eval-verbose
gesetzt ist,t
wird die Ausgabe, die während der Auswertung eines Quellcodeblocks an stderr gedruckt wird, in einem separaten Fenster angezeigt, als ob die Auswertung des Quellcodes fehlgeschlagen wäre.quelle