पायथन ऑर्ग-मोड स्रोत ब्लॉक आउटपुट हमेशा ': कोई नहीं'


16

यह मेरा स्रोत ब्लॉक है:

#+BEGIN_SRC python
print "hello"
#+END_SRC

आउटपुट हमेशा होता है:

#+RESULTS:
: None

यह मेरा org-babel कॉन्फ़िगरेशन है:

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

अजगर मेरे पेट पर है और टर्मिनल के माध्यम से निष्पादन योग्य है।

Emacs- लिस्प एसआरसी ब्लॉक ठीक काम करता है।

मुझे Noneइसके बजाय क्यों मिलता है hello?

जवाबों:


17

यह इस बात की ख़ासियत है कि बेबल कुछ भाषाओं को कैसे संभालती है। यह अजगर पर कुछ विवरण देता है, और विकल्पों की पूरी सूची यहां उपलब्ध है । काफी कुछ उपयोगी हैं।

असल में, भाषा के आधार पर, आउटपुट के लिए कई विकल्प हैं। कभी-कभी यह printअन्य भाषाओं (जैसे सप्तक) के लिए मानक आउटपुट (क्या करता है) का उपयोग करने के लिए समझ में आता है , यह एक छवि प्रदर्शित करने के लिए समझ में आता है। अजगर के लिए, डिफ़ॉल्ट वह है value, जो कोड का रिटर्न मान दिखाता है, इसलिए आपके प्रिंट स्टेटमेंट को रिटर्न में बदलने से अपेक्षित व्यवहार होगा।

यह कुछ मामलों में बहुत उपयोगी नहीं है, इसलिए इसे :results outputस्रोत ब्लॉक की पहली पंक्ति में जोड़कर बदला जा सकता है ।


14

इस तरह के एक बहुत ही सरल मामले में, एक हैक है जिसका मैं उपयोग करता हूं, इसके printसाथ बदलें return:

#+BEGIN_SRC python
return "hello"
#+END_SRC

#+RESULTS:
: hello

लेकिन सामान्य रूप से बेहतर समाधान का उपयोग करना होगा :results output, जैसा कि user2699 द्वारा उल्लेख किया गया है।

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

#+RESULTS:
: hello

2
यह कोई हैक नहीं है। :)
उमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.