파이썬 조직 모드 소스 블록 출력은 항상 ': None'


15

이것은 내 소스 블록입니다.

#+BEGIN_SRC python
print "hello"
#+END_SRC

출력은 항상 다음과 같습니다.

#+RESULTS:
: None

이것은 내 조직-바벨 구성입니다.

    (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)))

파이썬은 PATH에 있으며 터미널을 통해 실행 가능합니다.

Emacs-lisp SRC 블록은 잘 작동합니다.

None대신에 얻 hello습니까?

답변:


16

이것은 babel이 일부 언어를 처리하는 방식의 특징입니다. 이것은 파이썬에 대한 세부 정보를 제공하며 전체 옵션 목록은 여기에서 사용할 수 있습니다 . 유용한 것들이 꽤 있습니다.

기본적으로 언어에 따라 몇 가지 출력 옵션이 있습니다. print다른 언어 (예 : 옥타브)의 경우 표준 출력 (무엇을 하는가 ) 을 사용하는 것이 합리적 일 때 이미지를 표시하는 것이 좋습니다. python의 경우 기본값은입니다 value. 이는 코드의 반환 값을 표시하므로 print 문을 반환으로 변경하면 예상 된 동작이 나타납니다.

경우에 따라 그다지 유용하지 않으므로 :results output소스 블록의 첫 번째 줄 에 추가 하여 변경할 수 있습니다 .


14

이와 같은 매우 간단한 경우, 내가 사용하는 경향이 해킹이 대체 거기 printreturn:

#+BEGIN_SRC python
return "hello"
#+END_SRC

#+RESULTS:
: hello

그러나 일반적 :results output으로 user2699에서 언급했듯이 더 나은 솔루션을 사용 하는 것입니다.

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

#+RESULTS:
: hello

2
이것은 해킹이 아닙니다. :)
Omar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.