【发布时间】:2021-09-01 10:54:57
【问题描述】:
最近,我正在尝试将 emacs 配置为我的 python IDE,并在我的计算机中使用 anaconda。 我在 init.el 的 emacs 中使用了 conda 包和 python-mode,如下所示:
(use-package conda
:ensure t
:init
(setq conda-anaconda-home (expand-file-name "D:/Anaconda"))
(setq conda-env-home-directory (expand-file-name "D:/Anaconda/envs")))
(use-package python-mode
:ensure t
:hook (python-mode . lsp-deferred)
:custom
(dap-python-debugger 'debugpy)
:config
(require 'dap-python))
在我的 anaconda 环境中,我有五个环境:
# conda environments:
#
base * D:\Anaconda
PyCharm D:\Anaconda\envs\PyCharm
Pyflow D:\Anaconda\envs\Pyflow
gluon D:\Anaconda\envs\gluon
tensorflow D:\Anaconda\envs\tensorflow
我可以在 emacs 中打开一个 shell 并激活基础环境并运行 python。
但是在 emacs 中,当我尝试运行 py 文件时。当我使用M-x run-python 并且它没有运行我的python 脚本时。之后,我尝试使用python-shell-send-buffer 运行脚本,但它抛出了以下错误:
>>> Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "c:/Users/Travis/AppData/Local/Temp/pyQTizRq", line 1
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
^
SyntaxError: invalid syntax
当我打开这个目录'''c:/Users/Travis/AppData/Local/Temp/'''这个文件不存在。 我的系统是 windows 10 和 emacs 27.2。 如何解决问题,它可以直接运行脚本?
【问题讨论】:
-
run-python创建一个新的缓冲区,Python 在其中运行可以与之交谈的 REPL。目前尚不清楚这是否是您理解和期望的事情,或者您是否希望它应该做一些它没有做的事情。如果您尝试在该*Python*缓冲区中运行python-shell-send-buffer,那么它将完全按照我在之前的评论中描述的那样运行。这看起来像是试点错误,但如果您不将其拼写出来,我们将无法纠正您的期望。