在windows上的emacs中使用ipython会话中的matplotlib



***更新:问题在于在windows上的emacs中运行python。伊皮森和艾菲摆脱了困境。从一个简单的DOS提示符:python;来自pylab进口*;图(1);show()有效。如果我用emacs-Q启动(windows原生)emacs(关闭所有自定义,因此没有帮助等),然后Alt-x运行python,我会在emacs中得到python(而不是ipython)提示。来自pylab进口*;图(1);show()不起作用-没有显示任何图形窗口,也没有返回python提示。

***原始帖子:非常烦人的问题,已经和elpy和matplotlib的人谈过了,但我们被难住了。

目标:将ipython作为emacs中的一个进程运行,并使matplotlib绘图正常工作。关于操作系统,"linux不错,但我更喜欢emacs"。

我的设置:Windows 7,通过Anaconda的Python包(Python 3.6.2,ipython 6.1.0,matplotlib 2.0.2),emacs-25.3官方GNU Windows构建(不是cygwin,尽管我在emacs中使用了grep、diff等cygwin工具),帮助emacs包使用Python。

Elpy支持ipython。只要我不进行绘图,这就可以很好地工作-我可以在emacs中编辑python文件,将它们发送到ipython会话,然后在其中工作。此外,在emacs之外,如果我只是从DOS提示符下运行ipython,matplotlib图形也可以很好的工作(在Spyder中也可以很工作)。

我已经确保恢复到普通的设置-没有配置文件,TkAgg matplotlib后端(那些Qt给出了类似但略有不同的问题)。

所以:我在emacs中开始ipython,并做"pylab"。

**plt.ion(),图(1):窗口出现,底部有按钮。ipython提示有效。如果我和图形窗口交互,我会得到标题中的"无响应",以及MS Windows的旋转外壳。如果我点击右上角的X关闭图形窗口,窗口会显示"应用程序没有响应"。对话框w/End Process或Cancel。结束进程会终止图形和ipython会话。

**如果改为plt.ioff(),则如图(1)所示:图(1,1)show()我得到了一个带有绘图的图形窗口,但如果我与它交互,我会得到"没有响应"。ipython提示似乎很好。我可以通过提示关闭(1)和ipython fine来关闭窗口。

Tom Caswell(matplotlib)认为这是输入挂钩的问题。我不知道如何处理这个问题,但也许这已经足够了。

我认为使用python进行科学+emacs+Windows的人的"维恩图"不会那么小。

以下操作已经运行了几个月:使用jupyter控制台而不是ipython。Jupyter最终只运行ipython,但它启动ipython或与Windows或emacs接口的方式使matplotlib发挥了作用。我不太明白为什么。不过它给了我很好的结果。

我也停止使用elpy。我的.emacs有以下内容:

(setq python-shell-interpreter "jupyter"
python-shell-interpreter-args "console --simple-prompt")
(setq python-shell-completion-native-enable nil)

最后一行可能与matplotlib数字无关。

最新更新