Python 3.x 内核似乎意外死亡。使用';重新启动内核';继续使用此控制台(zeromq v4.1.3)
Anaconda3-2.4.0-Windows-x86_64安装,包括Python 3.5 64位和Spyder 2.3.7 Windows7专业版,SP1,64位 我试图通过youtube上的一系列视频向tkinter窗口添加matplotlib图,前5个视频介绍了tkinter窗口中窗口和按钮的初始创建,这一切都相当简单。当我开始第一次添加matplotlib时,问题就出现了。尽管我完全复制了视频中那个家伙在Python中所做的事情,但我还是得到了一个错误,他得到了一个工作程序 以下是我目前试图关注的视频链接: 播放时,右侧有一系列其他视频的列表 ipython控制台中给出的错误消息是:“内核似乎意外死亡。请使用‘重新启动内核’继续使用此控制台”。消息每隔几秒钟重复一次,直到选择“重新启动内核” 在下面的代码中,如果按原样运行,则不会打开任何窗口。如果注释掉了“canvas.show()”,则会打开一个窗口,并在窗口中显示python崩溃错误 如果“canvas.show()”、“canvas.get_tk_widget().pack(side=tk.TOP,fill=tk.BOTH,expand=True)”和“canvas.\u tkcanvas.pack()”都被注释掉,则程序运行正常,按钮功能正常 我对此进行了研究,发现了版本4.0.6和4.1.1中的zeromq问题,这些问题在较新版本中得到了修复。在anaconda提示符中使用“conda list”命令会显示版本号4.1.3,因此我认为这不是问题所在 我运行的是python 3.5,其中“sentdex”(视频中的那个家伙)运行的是3.4,这会导致问题吗 这是我的代码(减去3个打开窗口并打开按钮的类): 我在编写程序时编辑了一些内容,以反映我最终希望该程序用于的应用程序,一个用于各种工程位和块的计算器/转换器,如“反射系数/VSWR比/回波损耗转换”。我相信我编辑过的东西只有东西的名称和一些填充值 任何帮助都将不胜感激!我完全希望答案是我做错了什么,我对整个编程还是相当陌生的Python 3.x 内核似乎意外死亡。使用';重新启动内核';继续使用此控制台(zeromq v4.1.3),python-3.x,matplotlib,tkinter,anaconda,spyder,Python 3.x,Matplotlib,Tkinter,Anaconda,Spyder,Anaconda3-2.4.0-Windows-x86_64安装,包括Python 3.5 64位和Spyder 2.3.7 Windows7专业版,SP1,64位 我试图通过youtube上的一系列视频向tkinter窗口添加matplotlib图,前5个视频介绍了tkinter窗口中窗口和按钮的初始创建,这一切都相当简单。当我开始第一次添加matplotlib时,问题就出现了。尽管我完全复制了视频中那个家伙在Python中所做的事情,但我还是得到了一个错误,他得到了一个工作程序 以下是我目前
编辑:删除了引用我遗漏的其他代码的代码部分,因为如果有人试图运行它,这无疑会导致“额外”问题。我认为更新到Matplotlib 1.5可以解决这一问题。您可以通过打开终端(即
cmd.exe
)并运行以下命令来实现此目的:conda update matplotlib
您好,卡洛斯,谢谢您的评论。我似乎没有更新软件包所需的权限。我会处理这个问题,如果它解决了我的问题,我会告诉你。而且我不能用pip安装.whl文件。我们将在本周发布Anaconda 2.4.1,其中包括Matplotlib 1.5,以防有帮助:-)完美,我会留意它。非常感谢你!
import matplotlib
matplotlib.use("TkAgg")
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
import tkinter as tk
from tkinter import ttk
LARGE_FONT = ("Arial, 12")
class Home(tk.Tk):
def __init__(self, *args):
tk.Tk.__init__(self, *args)
tk.Tk.iconbitmap(self, default="icon1.ico")
tk.Tk.wm_title(self, "Converters & Calculators")
container = tk.Frame(self)
container.pack(side = "top", fill = "both", expand = True)
container.grid_columnconfigure(0, weight=1)
container.grid_rowconfigure(0, weight=1)
self.frames = {}
for F in (StartPage, MPL_Tutorial):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row = 0, column = 0, sticky = "nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Please select a calculator or convertor from the list:", font = LARGE_FONT)
label.pack(pady=20, padx=20)
MPL_Tutorial_button = ttk.Button(self, text = "Graph Page", command=lambda: controller.show_frame(MPL_Tutorial))
MPL_Tutorial_button.pack()
class MPL_Tutorial(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self, text="Graph Page", font = LARGE_FONT)
label.pack(pady=20, padx=20)
Home_button = ttk.Button(self, text = "Home", command=lambda: controller.show_frame(StartPage))
Home_button.pack()
f = Figure(figsize = (5,5), dpi=100)
a = f.add_subplot(111)
a.plot([1,2,3,4,5,6,7,8], [5,8,1,3,7,4,9,5])
canvas = FigureCanvasTkAgg(f, self)
canvas.show()
canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand = True)
toolbar = NavigationToolbar2TkAgg(canvas, self)
toolbar.update()
canvas._tkcanvas.pack()
app = Home()
app.mainloop()