Both Python 2 and 3 in Emacs

后端 未结 5 1001
不知归路
不知归路 2020-12-14 02:56

I have been using Emacs to write Python 2 code. Now I have both Python 2.6 and 3.0 installed on my system, and I need to write Python 3 code as well.

Here is how the

5条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-14 03:21

    regarding jrockway's comment:

    (defun is-python3-p () "Check whether we're running python 2 or 3."
      (setq mystr (first (split-string (buffer-string) "\n" t)))
      (with-temp-buffer
        (insert mystr)
        (goto-char 0)
        (search-forward "python3" nil t)))
    (defun run-python () "Call the python interpreter."
      (interactive)
      (if (is-python3-p)
          (setq py-python-command "/usr/bin/python3")
        (setq py-python-command "/usr/bin/python"))
      (py-execute-buffer))
    

    This will call python3 if "python3" is in the top line of your buffer (shebang, usually). For some reason the (setq py-pyton-command ...) doesn't let you change versions once you've run py-execute-buffer once. That shouldn't be an issue unless you change your file on the same buffer back and forth.

提交回复
热议问题