Я пытаюсь запустить код Python для тестирования и отладки с помощью Emacs. Как мне отлаживать и запускать код в файлах * .py? Я попытался использовать команды M-x compile
. Используя M-x compile
, я получаю аварийный сигнал компиляции (он говорит, что Python компилируется, но потом ничего не происходит).Как запустить код Python с помощью Emacs?
ответ
Если вы используете emacs24 это должно быть по умолчанию (в emacs23 вам нужно python.el, не питон-mode.el):
В питона буфер:
- Cc Cz: открытая питон оболочки
- Cc Cc: запустить содержимое буфера в открытом питона оболочки
- Cc Cr: запустить выбранный регион в оболочке Python
по умолчанию оболочка питон «питон», если вы урожденная использовать IPython вы можете использовать эту конф в ваш .emacs
(setq
python-shell-interpreter "ipython"
python-shell-interpreter-args "--colors=Linux --profile=default"
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")
при условии, что вы IPython установлены в вашей системе, конечно :)
IPython > = 5 имеет функцию автозаполнения, которая разбивает подклассу emacs, вы можете исправить это, изменив эту строку python-shell-interpreter-args "--colors=Linux --profile=default"
и добавьте --simple-prompt
.
Это позволит вам правильно видеть ipython, но по какой-то причине я еще не получил автозаполнение в emacs не так эффективно, как раньше.
Как вы используете код Python с помощью Emacs?
Я запускаю Emacs 26, версию vanilla dev (сам скомпилирован из источника, клонированного от Savannah).
(Обратите внимание, что в Emacs документации, мы обычно видим, например, Ctrl - с обозначается как Сс)
В режиме Python (который я обычно вводить с помощью Cx Cf, чтобы «найти» (возможно, новый файл), оканчивающийся на .py), вы можете запустить оболочку Python с, а затем выполнить ваш буфер
if __name__ == '__main__':
с:
Cc Cp (который выполняет запуск-питон, чтобы создать оболочку с худшим PythonОсновной режим, Shell-компилирование второстепенного режима)
Cu Cc Cc (который выполняет питон-оболочка-отправить-буфер с префиксом аргументом)
Мы требуем префикс аргумента для отправки if __name__ == '__main__':
блока нижняя оболочка Python.
Мы можем увидеть все Ctrl - с команды с Ctrl - с?
C-c C-c python-shell-send-buffer C-c C-d python-describe-at-point C-c C-f python-eldoc-at-point C-c C-j imenu C-c C-l python-shell-send-file C-c C-p run-python C-c C-r python-shell-send-region C-c C-s python-shell-send-string C-c C-t Prefix Command C-c C-v python-check C-c C-z python-shell-switch-to-shell C-c < python-indent-shift-left C-c > python-indent-shift-right C-c C-t c python-skeleton-class C-c C-t d python-skeleton-def C-c C-t f python-skeleton-for C-c C-t i python-skeleton-if C-c C-t m python-skeleton-import C-c C-t t python-skeleton-try C-c C-t w python-skeleton-while
Проверка помощь для питона-оболочки-отправить-буфера (нажав на него), мы видим:
python-shell-send-buffer is an interactive compiled Lisp function in ‘python.el’. (python-shell-send-buffer &optional SEND-MAIN MSG) Send the entire buffer to inferior Python process. When optional argument SEND-MAIN is non-nil, allow execution of code inside blocks delimited by "if __name__== '__main__':". When called interactively SEND-MAIN defaults to nil, unless it’s called with prefix argument. When optional argument MSG is non-nil, forces display of a user-friendly message if there’s no process running; defaults to t when called interactively.
Согласно docs Cu является префиксный аргумент - и, по-видимому, является наиболее общим.
Обходной, что позволяет нам избежать с помощью префикса аргумент C-У с помощью круглых скобок:
if (__name__ == '__main__'):
main()
вместо обычного:
if __name__ == '__main__':
main()
, а затем С-С С-с по себе выполняет основную функцию.
- 1. Как запустить .sml-файл с помощью emacs?
- 2. Как запустить специальный режим с помощью emacs?
- 3. запустить код python с помощью html5
- 4. Как запустить интерпретатор python в Emacs?
- 5. Как запустить схему с Emacs?
- 6. Как запустить другой режим с помощью Emacs в командной строке?
- 7. Запустить код Perl непосредственно в Emacs
- 8. Как запустить код Python с помощью нескольких определений функций (2.7)
- 9. Как запустить код python с помощью cmd.exe из приложения C#?
- 10. Emacs: Как запустить RSpec?
- 11. Как запустить код C# с помощью блокнота ++?
- 12. Как запустить php-код с помощью json_decode?
- 13. Как запустить Emacs с помощью курсора в конце заданного файла?
- 14. Запустить код Python на экземпляр EC2 с помощью Boto
- 15. Запустить код TCL вместе с скриптом Python
- 16. Запустить код python с определенной точки
- 17. Как отступать код в Emacs с python-mode?
- 18. Как использовать Emacs с Python
- 19. Как запустить два потока с помощью python?
- 20. Как запустить Emacs с различными конфигурациями
- 21. Как запустить код в кластере AWS с помощью Apache-Spark?
- 22. Emacs Python «elpy» отправить код переводчику
- 23. Запустить код Matlab в Python
- 24. Как запустить код C с терминала?
- 25. Как запустить экземпляр приложения с помощью Python?
- 26. Как запустить IOMeter с помощью Python?
- 27. Как запустить скрипты Python (с помощью Notepad ++)
- 28. Как запустить несколько файлов с помощью python
- 29. [Python] Как запустить программу с помощью Пропустите
- 30. Как запустить python-daemon с помощью twisted