Python Shell в Emacs 24?
Недавно я обновился с Emacs 23 до Emacs 24. С момента обновления кажется, что я потерял возможность называть "M-x python-shell" (!).
Что случилось? Включен ли включенный режим python с этой функциональностью?
Использование Emacs 23:
○ /usr/local/bin/emacs -Q
Describe function: python-shell
python-shell is an interactive autoloaded Lisp function in
`python.el'.
Использование Emacs 24:
○ /Applications/Emacs.app/Contents/MacOS/Emacs -Q
Describe function: python-shell [No match]
Ответы
Ответ 1
Оказывается, эта функциональность больше не доступна в собственном режиме Python Emacs. Однако его можно добавить, установив python-mode
через диспетчер пакетов (хотя теперь он называется py-shell
вместо python-shell
). Вот шаги, которые я использовал для решения этой проблемы:
-
Я не уверен, если вам нужен архив пакета Marmalade, чтобы установить это, но это хорошая идея добавить его, если вы еще этого не сделали:
(add-to-list 'package-archives
'("marmalade" . "http://marmalade-repo.org/packages/"))
-
Тип M-x list-packages
- Найдите
python-mode
.
- Установите пакет, нажав
i
, а затем x
- Теперь будет установлен python-режим.
-
Примечание. По какой-то причине py-shell
не был доступен при следующем загрузке Emacs. Я исправил это, добавив:
(load "~/.emacs.d/elpa/python-mode-6.0.3/python-mode.el")
до конца моего файла .emacs
, хотя это своего рода хакерство.
Ответ 2
Кажется, вы только решили проблему python-mode
. Что касается M-x-python-shell
, вы также можете получить это, выполнив M-x-run-python
. Если он говорит, что каталог не найден, потому что переменная python не указывает на правильный путь. Итак, C-h-f run-python
, тогда он скажет вам, что значение run-python является интерпретатором python-shell-интерпретатором. Поэтому укажите python.exe в папку python.
добавьте это в ваш файл .emacs
(setq python-shell-interpreter "path to python.exe")
Затем, как и в emacs 23, вы можете сделать C-c-C-c
для запуска файла .py.
edit - причина, по которой у меня есть все это здесь, даже если вы уже знаете об этом, потому что я не понял, что emacs24 изменил значение python для run-python некоторое время, и именно так я его исправил.: D