***更新:问题是在Windows上的emacs中运行python。 ipython和elpy已经摆脱困境。从一个普通的DOS提示符:python;来自pylab import *;图1); show()有效。如果我启动(windows-native)emacs与emacs -Q(关闭所有自定义,所以没有elpy等),然后Alt-x run-python,我在emacs中得到一个python(而不是ipython)提示。来自pylab import *;图1); show()不起作用 - 没有图形窗口出现,我也没有回到python提示符。
***原帖: 非常讨厌的问题,已经和elpy和matplotlib人谈过了,但我们很难过。
目标:将ipython作为emacs中的进程运行,并获取matplotlib图表。关于操作系统," linux很不错但我更喜欢emacs"。
我的设置:Windows 7,Python包通过Anaconda(python 3.6.2,ipython 6.1.0,matplotlib 2.0.2),emacs - 25.3官方GNU windows构建(不是cygwin,虽然我使用像grep这样的cygwin工具, emacs中的diff等,用于处理python的elpy emacs包。
Elpy支持ipython。只要我没有制作情节,这就行得很好 - 我可以在emacs中编辑python文件,将它们发送到ipython会话,在其中工作。另外,如果我只是在DOS提示符下运行ipython,那么在emacs之外,matplotlib数据工作正常(也可以在Spyder中正常工作)。
我确保恢复到普通的设置 - 没有配置文件,TkAgg matplotlib后端(那些Qt给出了类似但略有不同的问题)。
所以:我在emacs中启动ipython,然后做' pylab'。
** plt.ion(),图(1): 窗口出现,底部有按钮。 ipython提示工作。如果我与图形窗口交互,我在标题中得到“没有响应”,并且MS Windows'旋转shell。如果我通过单击右上角的X关闭图形窗口,则窗口显示“app not responses。”对话框带有“结束进程”或“取消”。结束进程杀死了数字和ipython会话。
**如果改为plt.ioff(),图(1): 图(1,1) 节目() 我得到一个带有情节的数字窗口,但如果我与它进行交互,我会“没有回应。”ipython提示似乎很好。我可以从提示关闭(1)和ipython罚款关闭窗口。
Tom Caswell(matplotlib)认为这是输入挂钩的问题。我不知道如何使用它,但也许它已经足够了解。
我认为维恩图'对于那些使用python进行科学+ emacs + Windows的人来说,这不会那么小。
答案 0 :(得分:0)
以下内容已经工作了几个月:使用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数字无关。