2014-09-25 4 views
2

Я попытался запустить консоль ipython на emacs, набрав C-c C-p при редактировании скрипта python. Но консоль ipython выглядит пустым. Хотя, когда я набираю некоторую команду, есть выход, и выводится приглашение Out. Кроме того, когда я выхожу(), отображается много подсказок In(). Почему это так?Нет пропущенных сообщений в ipython при запуске в emacs

Ipython console on exit

Я использую Emacs versiion 24,3, IPython 2.1.0 и 2.7.6 питона. Ниже мой init.el

;;; To start emacs maximized at startup 
(w32-send-sys-command 61488) 


;;; To remove the toolbar from emacs 
(tool-bar-mode 0) 


;;; IDO configuration 
(setq ido-enable-flex-matching t) 
(setq ido-everywhere t) 
(ido-mode 1) 


;;; Add MELPA repository 
(require 'package) 
(package-initialize) 
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t) 


;;; Configure Aspell 
(add-to-list 'exec-path "C:/Program Files (x86)/Aspell/bin/") 
; Tell emacs to use Aspell and provide the location of custom dictionary 
(setq ispell-program-name "aspell") 
(setq ispell-personal-dictionary "C:/emacs/.emacs.d/my_dict/my_dict.ispell") 
; Turn it on 
(require 'ispell) 


;;; Flyspell configuration 
(add-to-list 'load-path "~/.emacs.d/flyspell") 
(autoload 'flyspell-mode "flyspell" "On-the-fly spelling checker." t) 
(autoload 'flyspell-delay-command "flyspell" "Delay on command." t) 
(autoload 'tex-mode-flyspell-verify "flyspell" "" t) 
(add-hook 'LaTeX-mode-hook 'flyspell-mode) ; Auto-start flyspell with LaTeX 


;;; Enable auto-complete mode 
(require 'auto-complete) 
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict") 
(require 'auto-complete-config) 
(ac-config-default) 
(global-auto-revert-mode t) 


;;; RefTex configuration 
(require 'reftex) 
(add-hook 'LaTeX-mode-hook 'turn-on-reftex) 
(add-hook 'latex-mode-hook 'turn-on-reftex) 


;;; Activate code folding in AUCTeX 
(add-hook 'LaTeX-mode-hook (lambda() 
      (TeX-fold-mode 1))) 


;;; Setup jedi 
(add-hook 'python-mode-hook 'jedi:setup) 
(setq jedi:complete-on-dot t) 


;;; Pair braces and quotes automatically (autopair) 
(require 'autopair) 
(autopair-global-mode) ;; Enable autopair in all buffers 


;; (setq py-install-directory "~/.emacs.d/python-mode.el-6.1.3") 
;; (add-to-list 'load-path py-install-directory) 
;; (require 'python-mode) 

(require 'python) 
(setq python-shell-interpreter "ipython") 
(setq python-shell-interpreter-args "--pylab") 

ответ

2

Я не familair достаточно с кодом python.el, чтобы дать вам хороший ответ, но если вы посмотрите на начало python.el (в «Комментарий:» раздел), вы увидите, что он немного рассказывает о том, как использовать Ipython. Это говорит о том, что с ним были проблемы. Код python.el в предстоящем 24.4 значительно улучшил поддержку Ipython, поэтому он не требует всей этой конфигурации и фактически работает (предположительно). Поскольку 24.4 очень близок к выпуску, мы ищем людей, которые могут помочь нам избавиться от последних нескольких ошибок, поэтому было бы здорово, если бы вы могли попробовать последний предварительный тест (24.3.94), чтобы узнать, разрешает ли это вам проблема, а если нет, сделайте M-x report-emacs-bug, чтобы мы могли исправить это до выпуска.

+0

Я нахожусь на машине для окон. Могу ли я это сделать? – Shaun

+0

В любом случае, когда вы сказали мне, что есть несколько комментариев о Ipython в python.el. Это сработало для меня, используя это. Благодарю. – Shaun

2

У меня была эта же проблема с Emacs 24.3.1 на Windows, и все мои проблемы были окончательно устранены путем shoehorning процесса ipython в подпроцесс (я пробовал все, что мог, из секции комментариев безрезультатно - возможно, Shaun точно знает, что он изменил, что зафиксировал это?). Вы получаете дополнительный процесс python в миксе, но у меня не было никаких проблем с управлением между буфером кода и буфером python. Из моих .emacs:

(setq 
python-shell-interpreter "C:\Python27\\python.exe" 
python-shell-interpreter-args "-u -c \"import subprocess; subprocess.call('ipython')\"" 
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")