Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 内核似乎意外死亡。使用';重新启动内核';继续使用此控制台(zeromq v4.1.3)_Python 3.x_Matplotlib_Tkinter_Anaconda_Spyder - Fatal编程技术网

Python 3.x 内核似乎意外死亡。使用';重新启动内核';继续使用此控制台(zeromq v4.1.3)

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中所做的事情,但我还是得到了一个错误,他得到了一个工作程序 以下是我目前

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比/回波损耗转换”。我相信我编辑过的东西只有东西的名称和一些填充值

任何帮助都将不胜感激!我完全希望答案是我做错了什么,我对整个编程还是相当陌生的


编辑:删除了引用我遗漏的其他代码的代码部分,因为如果有人试图运行它,这无疑会导致“额外”问题。

我认为更新到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()