使用
python -i
或
ipython -i
代替
python
或
ipython
对我很有用(它让我在Emacs中获得提示,而不是无限期地挂起)。
从python --help中得到:
-i :运行脚本后交互式检查;即使标准输入不是终端,也会强制出现提示符;还可以设置PYTHONINSPECT=x。
然而,生成的Python解释器可能不完全功能。你有两个选择:
- 如果你正在使用conda环境中的Python:建议你切换到适当的Python安装。这并不意味着删除Anaconda,只需从https://www.python.org/downloads/windows/下载Python,并从Windows的%PATH%变量中删除Anaconda的Python。如果不这样做,你将遇到许多问题,如图片显示,conda的激活(conda activate base)等等,我从未成功地解决过所有这些问题。
- 如果你正在使用python.org/downloads中的Python:你走上了正确的道路!检查Python是否可以从命令行访问(Win+R cmd python),如果无法访问,请将其路径添加到Windows Path变量中。
现在你需要使图像显示正常工作。默认情况下,matplotlib.pyplot在Emacs中运行缓慢。你需要做以下操作:
首先,请检查是否已经下载了ipython包(
pip install ipython
),以及matplotlib和numpy(如果你使用它们,但谁不用呢:
pip install matplotlib
,
pip install numpy
)。
然后在您的计算机上找到ipython-script.py的位置(在文件资源管理器中键入“ipython-script.py”即可找到它),并将其作为参数放入变量python-shell-interpreter-args中,在“-i ”之后。还要检查python-shell-interpreter是否设置为python
。您应该有类似于:
(setq python-shell-interpreter "python")
(setq python-shell-interpreter-args "-i c:/Users/YOUR-USER-NAME/AppData/Local/Continuum/anaconda3/Scripts/ipython-script.py")
这样,您就可以直接从Emacs中运行Python shell,方法是使用M-x run-python
命令(或者,在Python文件中,使用C-c C-p,然后使用C-c C-c命令)。
当然,如果您愿意的话,也可以在shell终端中执行相同的操作,使用以下命令:
python -i "c:/Users/YOUR-USER-NAME/AppData/Local/Continuum/anaconda3/Scripts/ipython-script.py"
或者,您可以创建一个批处理文件,其中包含相同的命令。但这不是必要的。
(已测试使用 Python 3.8)
run-python
有特别的原因吗?在Windows上,它似乎可以直接运行于emacs 24.2(如果你想要使用ipython
而非默认设置,可能需要使用M-x customize-variable
python-command
)。 - Inaimathirun-python
返回“正在搜索程序:权限被拒绝,nil”。我没有定义python-command
。 - user443854