我我要讀取elisp來檢查,但我敢打賭,如果你添加了一個--version
標誌,保存結果爲/usr/bin/python
,emacs會很高興。
更新
這裏是在Emacs 23.3.1在python.el線1555及以下的代碼:
(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)))
它在做什麼正在運行一個班輪
from sys import version_info;
print version_info >= (2, 2) and version_info < (3, 0)
只打印「真」或「假」的
。修復你的腳本來處理-c標誌,你應該沒問題。
或者,你可以採取黑客的方式,並強制python-version-checked
的值爲t
,它永遠不會執行檢查。
感謝指針,通過文件查找我發現了另一個問題 - 「-i」標誌是硬連線的(因此從python-python-command-args中移除它不會阻止它被傳遞) – 2011-06-08 06:19:14
那麼,這就是爲什麼他們會給你來源。但是,特別是,這聽起來像是一個錯誤,改變它並提交一個補丁。 – 2011-06-08 22:04:14