4

我刚刚在 Windows 上安装了 Python 2.7 和 IPython。

我习惯于在 Linux 上的 Emacs 中运行 IPython,例如

M-x shell

然后ipython在提示符处键入“”。

这在 Linux 下工作得很好,但在 Windows 下,它在打印 IPython 横幅文本后挂起,即看起来它正在工作,但是你永远不会得到 IPython 提示。

我可以在 Windows 下从标准 cmd 终端毫无问题地加载 IPython(和 Python),而不是从 Emacs 中加载。

还有其他人经历过或希望解决这个问题吗?

在尝试启动普通的旧 Python 时,我也遇到了同样的问题。

4

3 回答 3

2

在 Windows 中,它不会那么容易工作,而且非常烦人。首先,确保你已经安装了 pyreadline。

接下来,我让它使用我的系统路径中的一个 bat 文件,其中包含:

[ipython.bat]
@python.exe -i C:\devel\Python\2.7-bin\Scripts\ipython.py  --pylab %*

接下来获取 python-mode.el 并删除 ipython.el。后者已弃用,python-mode 包含其功能。

相应地更改 ipython.py 文件的路径并保存。现在在您的 Emacs 中,在您的 init.el 文件中执行以下操作。

(custom-set-variables
 '(py-shell-name "ipython.bat"))

或者,要实现最后一步,请执行 Ch v <RET> py-shell-name 并对其进行自定义并将其更改为 ipython.bat 或 ipython.bat 的完整路径(如果脚本目录不在您的系统路径中)。保存以备将来使用。

这应该让你的 IPython shell 工作。如果您想要多个交互式 matplotlib 图形而不挂起您的 IPython 控制台,还有一个警告。我可以解决这个问题的唯一方法是使用 IPython 0.10 而不是当前版本。

于 2013-01-14T21:12:37.903 回答
1

我希望我不久前看过这篇文章。我在 Emacs 中运行 python、ipython 的经验如下:

我尝试了许多选项(在 Windows 7 上使用 python(x,y)-2.7.3.0)

使用 ipython.el:

只要您更改 ipython-command,它仍然有效。我不建议这样做,因为您通过更改 ipython-command 从 ipython.el 失去了一些功能

您可以显示图形,但在您关闭图形之前,提示会被冻结

裸蟒不起作用

更改 py-shell-name(如上):当我添加 --pylab 选项时,我的数字总是挂起

我总是得到一个 IPython 终端

引入 ipython.bat 包含

@C:\\Python27\\python.exe -i -u C:\\Python27\\Scripts\\ipython-script.py %*

并更改我在 ipython.exe 之前找到的 ipython.bat 的路径

IPython 工作,但仍然只有一个线程(您必须关闭图形才能返回外壳)

Python 也可以工作,所有剩余的函数都来自 python-mode.el

我仍然需要弄清楚如何在打开一个图(在 emacs 内)后返回 shell。我开始使用 Python 2.6 和旧版本的 IPython

于 2013-05-15T13:12:31.797 回答
1

使用python -ioripython -i代替pythonoripython为我工作(它让我在 Emacs 中得到提示,而不是无限期地挂起)。

从 python --help :

-i : 运行脚本后交互检查;即使 stdin 看起来不是终端也强制提示;还有 PYTHONINSPECT=x


但是,生成的 python 解释器可能无法完全正常工作。您有 2 个选项:

  • 如果您在 conda 环境中使用 python:我建议您切换到正确的 Python 安装。这并不意味着删除 Anaconda,它只意味着从https://www.python.org/downloads/windows/下载 Python并从 Windows 的 %PATH% 变量中删除 Anaconda 的 Python。如果你不这样做,你会遇到很多图片显示问题,激活conda(conda activate base)等问题,我从来没有成功解决这些问题。
  • 如果您使用来自 python.org/downloads 的 Python:您走在正确的轨道上!检查是否可以从命令行(Win+R cmd python)访问 Python,如果不能,将其路径添加到 Windows 路径变量。

现在您需要使图像显示工作。开箱即用,matplotlib.pyplot 在 Emacs 中滞后。这是您需要做的:

首先,检查你是否已经下载了 ipythonpip install ipython包(pip install matplotlibpip install numpy

然后在您的计算机上找到 ipython-script.py 的位置(在文件资源管理器中键入“ipython-script.py”以找到它)并将其作为参数放在变量 python-shell-interpreter-args 中,在“ -一世 ”。还要检查 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 文件,Cc Cp 然后 Cc Cc)。

当然,如果您愿意,也可以从 shell 终端执行相同的操作,使用以下命令: python -i "c:/Users/YOUR-USER-NAME/AppData/Local/Continuum/anaconda3/Scripts/ipython-script.py"

或者您可以使用相同的命令创建一个 bat 文件。但这不是必需的。

(使用 Python 3.8 测试)

于 2019-10-15T07:47:12.590 回答