Python kuruluş modu kaynak bloğu çıktısı her zaman ': Yok'


16

Bu benim kaynak bloğum:

#+BEGIN_SRC python
print "hello"
#+END_SRC

Çıktı her zaman:

#+RESULTS:
: None

Bu benim org-babel yapılandırmam:

    (org-babel-do-load-languages
 'org-babel-load-languages
 '((python . t)
   (C . t)
   (calc . t)
   (latex . t)
   (java . t)
   (ruby . t)
   (scheme . t)
   (sh . t)
   (sqlite . t)
   (js . t)))

Python benim PATH ve terminal üzerinden çalıştırılabilir.

Emacs-lisp SRC blokları gayet iyi çalışıyor.

NoneBunun yerine neden alıyorum hello?

Yanıtlar:


17

Bu babel'in bazı dilleri nasıl ele aldığının bir özelliğidir. Bu , python hakkında biraz ayrıntı verir ve seçeneklerin tam bir listesini burada bulabilirsiniz . Oldukça kullanışlı birkaç tane var.

Temel olarak, dile bağlı olarak, çıktı için çeşitli seçenekler vardır. Bazen standart çıktıyı (ne işe yarar) kullanmak, printdiğer diller (örn. Oktav) için bir görüntünün görüntülenmesi mantıklıdır. Python için varsayılan valuedeğer, kodun dönüş değerini gösterir, bu nedenle yazdırma ifadenizi bir dönüşle değiştirmek beklenen davranışı verir.

Bu bazı durumlarda çok kullanışlı değildir, bu nedenle :results outputkaynak bloğunun ilk satırına eklenerek değiştirilebilir .


14

Bunun gibi çok basit bir durumda, kullanım eğilimi kesmek yerine var printolan return:

#+BEGIN_SRC python
return "hello"
#+END_SRC

#+RESULTS:
: hello

Ancak genel :results outputolarak, kullanıcı tarafından belirtildiği gibi , daha iyi bir çözüm kullanmaktır9999

#+BEGIN_SRC python :results output
print("hello")
#+END_SRC

#+RESULTS:
: hello

2
Bu bir hack değil. :)
Ömer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.