답변:
이것이 나의 워크 플로우입니다. imacthon을 사용하도록 emacs를 설정했습니다.
(setq
python-shell-interpreter "ipython3"
python-shell-interpreter-args "--simple-prompt --pprint")
그런 다음 ~ / .ipython / profile_default / startup / 00-ipython_init.py에 다음을 입력하십시오.
ip = get_ipython()
ip.magic('load_ext autoreload')
그런 다음 수정하고 ipython에서 모듈을 다시로드 할 때마다 이것을 입력하십시오. 모든 모듈에서 작동하므로 가져 오기 종속성에 대해 걱정할 필요가 없기 때문에 이것을 좋아합니다.
%autoreload
python-run을 수정하고 Python 프로세스를 강제로 다시 시작하여 수행 할 수 있습니다.
;; Run python and pop-up its shell.
;; Kill process to solve the reload modules problem.
(defun my-python-shell-run ()
(interactive)
(when (get-buffer-process "*Python*")
(set-process-query-on-exit-flag (get-buffer-process "*Python*") nil)
(kill-process (get-buffer-process "*Python*"))
;; Uncomment If you want to clean the buffer too.
;;(kill-buffer "*Python*")
;; Not so fast!
(sleep-for 0.5))
(run-python (python-shell-parse-command) nil nil)
(python-shell-send-buffer)
;; Pop new window only if shell isnt visible
;; in any frame.
(unless (get-buffer-window "*Python*" t)
(python-shell-switch-to-shell)))
(defun my-python-shell-run-region ()
(interactive)
(python-shell-send-region (region-beginning) (region-end))
(python-shell-switch-to-shell))
(eval-after-load "python"
'(progn
(define-key python-mode-map (kbd "C-c C-c") 'my-python-shell-run)
(define-key python-mode-map (kbd "C-c C-r") 'my-python-shell-run-region)
(define-key python-mode-map (kbd "C-h f") 'python-eldoc-at-point)))
http://lgmoneda.github.io/2017/02/19/emacs-python-shell-config-eng.html