this answer पर मेरी टिप्पणी।
मैं /t/min.py जो python3 में ठीक लेकिन को Python2 में नहीं चलेंगे लिखा था (शब्दकोश समझ python3 में काम करता है)
की /t/min.py
#!/usr/bin/python3
# -*- py-python-command: "/usr/bin/python3"; -*-
a = {i:i**2 for i in range(10)}
print(a)
नोट सामग्री है कि शेबैंग python3 इंगित करता है और फाइल स्थानीय परिवर्तनीय py-python-command भी इंगित करता है।
मैंने /t/min-py.el भी लिखा है जो सुनिश्चित करता है कि python.el के बजाय python-mode.el (ver 5.1.0) का उपयोग किया जाता है।
/t/min-py.el की सामग्री
(add-to-list 'load-path "~/m/em/lisp/")
(autoload 'python-mode "python-mode" "Python Mode." t)
;; (setq py-python-command "python3")
ध्यान दें कि अंतिम पंक्ति पर टिप्पणी की है।
मैं निम्न आदेश के साथ Emacs शुरू:
emacs -Q -l /t/min-py.el /t/min.py &
अब emacs मेरे वैकल्पिक dotemacs के साथ शुरू किया गया है और यह /t/min-py.el /t/min.py खोलता है।
जब मैं पाइथन को बफर भेजने के लिए सी-सी सी-सी दबाता हूं, तो यह कहता है कि "के लिए" भाग गलत है और यह इंगित करता है कि Python2 के बजाय python2 का उपयोग किया जा रहा है। जब मैं सी-सी दबाता हूं! पायथन दुभाषिया शुरू करने के लिए, यह कहते हैं कि अजगर 2.5 शुरू हो गया है।
मैं/t/min की दूसरी पंक्ति भी बदल सकता हूं।इस के लिए पीई:
# -*- py-python-command: "chunkybacon"; -*-
और यह प्रयोग फिर से करें और emacs अभी भी python2 का उपयोग करता है।
यदि /t/min-py.el की अंतिम पंक्ति पर टिप्पणी नहीं की गई है, तो सी-सी सी-सी और सी-सी! दोनों python3 का उपयोग करें।
आप कैसे Emacs स्वचालित रूप से पता लगाने के लिए प्राप्त करने के लिए आप लिख रहे हैं कि क्या अजगर 2 कोड या अजगर 3 कोड, और सही अजगर संस्करण कॉल करने के लिए सोच रहे हैं? या आप पूछ रहे हैं कि Emacs को कैसे बदला जाए ताकि यह सभी मामलों में एक अलग आदेश (यानी पायथन 3) कहता है जब पाइथन कोड बफर में लोड हो जाता है? –
स्पष्ट रूप से पहला आदर्श होगा, लेकिन यह बहुत कठिन लगता है, क्योंकि पाइथन 2 और पायथन 3 के बीच सिंटैक्टिक अंतर नाबालिग हैं। ऐसा लगता है कि इस सवाल के जवाब दूसरे मामले की देखभाल करते हैं। स्पष्टीकरण देने के लिए धन्यवाद। –