2011-06-08 12 views
5

Emacs 'python-mode'da normal/usr/bin/python'u özel bir python kabuğu ile değiştirmek ne kadar sürer?Emacs python modu için özel Python kabuğu

Temel olarak, python yorumlayıcı istemine başlamadan önce bazı başlatmaların yapıldığı bir ikili/usr/bin/mypython'um var ve tüm etkileşim amaçları için, sonuçlanan yorumlayıcı kabuğu/usr/bin/python ile eşdeğerdir. Ben (Emacs 23.3 kullanarak python.el) "piton-piton-komuta" bu ikili belirtirseniz

Ancak, ben olsun "Sadece Python sürümleri> = 2.2 ve < 3.0 desteklenir"

cevap

5

Ben kontrol etmek için elisp'i okumak üzereyim, ama eğer /usr/bin/python kayıt sonuçlarını veren bir --version bayrağını eklediyseniz bahse girerim, emacs mutlu olur. İşte Güncelleme

EMACS'in 23.3.1 yılında python.el hattı 1555 ve devamında, kod:

(defvar python-version-checked nil) 
(defun python-check-version (cmd) 
    "Check that CMD runs a suitable version of Python." 
    ;; Fixme: Check on Jython. 
    (unless (or python-version-checked 
      (equal 0 (string-match (regexp-quote python-python-command) 
        cmd))) 
    (unless (shell-command-to-string cmd) 
     (error "Can't run Python command `%s'" cmd)) 
    (let* ((res (shell-command-to-string 
       (concat cmd 
         " -c \"from sys import version_info;\ 
print version_info >= (2, 2) and version_info < (3, 0)\"")))) 
     (unless (string-match "True" res) 
    (error "Only Python versions >= 2.2 and < 3.0 are supported"))) 
    (setq python-version-checked t))) 

Ya bu bir tek silindir gömleği

from sys import version_info; 
print version_info >= (2, 2) and version_info < (3, 0) 
çalıştıran yapıyor

sadece "Doğru" veya "Yanlış" yazıyor. -C bayrağını işlemek için betiğinizi düzeltin ve iyi olmalısınız.

Alternatif olarak, hacker'ın çıkış yolunu alabilir ve python-version-checked değerini t'a zorlayabilir ve asla denetimi gerçekleştirmez.

+0

İşaretçiden dolayı, dosyaya baktığımda başka bir sorun buldum - "-i" bayrağı sabitlenmiş (python-python-command-args'lardan kaldırılması, iletilmesinin önüne geçmeyecektir) –

+0

Peki, bu yüzden size Kaynaklar. Ama bu, özellikle, bana bir hata gibi geliyor; değiştirin ve bir yama gönderin. –

1

çek yenmek için en kolay yolu yalan ve zaten işaretli oluyor o python-check-version söylemektir: python-mode.el ile

(setq python-version-checked t) 
0

sadece

Mx MY-PYTHON RET

do verilen Python sürümü

https://launchpad.net/python-mode
+0

StackOverflow'a Hoş Geldiniz! Hevesli ve favori bir araç olduğunu görüyorum. Bununla birlikte, aynı siteye ** veya ** tüm yayınlarınızı ** ve ** sadece ilk gününüzde 10 kez önerme veya bağlantı verme, bu sitedeki "potansiyel spam" sinyallerini tetikleme riskini taşır. Kendine iyi bak! Sadece samimi bir tavsiye. –

İlgili konular