Настройка.emacs для использования интерпретатора IPython

Я новичок в lisp, и мне сложно настроить emacs для ipython. Часть моего файла.emacs выглядит так:

;; Python mode settings
(require 'python-mode)
(add-to-list 'load-path "~/.emacs.d/elpa/")
(let ((default-directory "~/.emacs.d/elpa/"))
  (normal-top-level-add-to-load-path '("."))
  (normal-top-level-add-subdirs-to-load-path))

(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py$\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

(require 'ipython)

я бегу emacs --debug -init из окна командной строки и получите следующее сообщение об ошибке при запуске emacs:

Debugger entered--Lisp error: (wrong-type-argument listp "-i")
  nconc("-i" ("-colors" "LightBG"))

  eval-buffer(#<buffer  *load*-610080> nil "c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" nil t)  ; Reading at buffer position 9523
  load-with-code-conversion("c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" "c:/Users/xxxx/AppData/Roaming/.emacs.d/elpa/python-mode-20150616.2346/ipython.el" nil t)
  require(ipython)

Это может быть что-то, что должно быть очень очевидным, но не уверен, как это исправить, если честно. Было бы очень полезно, если бы вы указали мне правильное направление. Благодарю.

3 ответа

Кажется, вы используете python-mode из python-mode.el: Никаких специальных настроек для IPython не должно быть. Не требует ipython.el, он устарел.

Настройка py-shell-name "ipython" сделает его оболочкой по умолчанию.Mx ipython RET должен работать прямо из коробки, также отправляя материал командам ipython.

Для особых случаев переопределения значений по умолчанию загляните в README.org.

У меня есть следующее в моем init.el сделать ipython интерпретатором Python по умолчанию:

(setq
 python-shell-interpreter "ipython"
 python-shell-interpreter-args ""
 python-shell-prompt-regexp "In \\[[0-9]+\\]: "
 python-shell-prompt-output-regexp "Out\\[[0-9]+\\]: "
 python-shell-completion-setup-code
   "from IPython.core.completerlib import module_completion"
 python-shell-completion-module-string-code
   "';'.join(module_completion('''%s'''))\n"
 python-shell-completion-string-code
   "';'.join(get_ipython().Completer.all_completions('''%s'''))\n")

Чтобы запустить переводчика, все, что вам нужно сделать, это позвонить run-python,

Надеюсь это поможет!

Попробуйте изменить ipython командная строка, как показано ниже:

(add-hook 'python-mode-hook
            (lambda ()
              ;You can uncomment next lines
              ;(set (make-variable-buffer-local 'beginning-of-defun-function)
              ;     'py-beginning-of-def-or-class)
              ;(setq outline-regexp "def\\|class ")
              ;(setq tab-width 4)
              ;(define-key py-mode-map "\C-c4" 'uncomment-region )
              ;(outline-minor-mode 1)
              ;(linum-mode 1)
              ;Ipython settings sections
              (require 'ipython)
              (setq-default py-shell-name "ipython")
              (setq-default py-which-bufname "IPython")
              (setq py-python-command-args '("--colors=linux")) ;Command line for run iPython
              ))
Другие вопросы по тегам