cx_freeze converted GUI-app (tkinter) crashes after presssing plot-Button
Question: I've been dealing with this for days now and hope to finde some help. I
developed a GUI-application with imported modules tkinter, numpy, scipy,
matplotlib, which runs fine in python itself. After having converted to an
*.exe everything works as expected, but NOT the matplotlib section. When I
press my defined plot-Button, the *.exe simply closes and doesn't show any
plots. So I thought to make a minimalistic example, where I simply plot a sin-
function and I'm facing the same issue: Works perfect in python, when
converting it to an *.exe it crashes when pressing the plot Button. The
minimalistic example is here:

    
    
    import tkinter as tk
    import matplotlib.pyplot as plt
    import numpy as np
    
    class MainWindow(tk.Frame):
        def __init__(self):
            tk.Frame.__init__(self,bg='#9C9C9C',relief="flat", bd=10)
            self.place(width=x,height=y)
            self.create_widgets()
    
        def function(self):
            datax = np.arange(-50,50,0.1)
            datay = np.sin(datax)
            plt.plot(datax,datay)
            plt.show()
    
        def create_widgets(self):
            plot = tk.Button(self, text='PLOT', command=self.function)
            plot.pack()
    
    
    x,y=120,300
    root=tk.Tk()
    root.geometry(str(x)+"x"+str(y))
    app = MainWindow()
    app.mainloop()
    

And see my corresponding "setup.py" for converting with cx_freeze.

    
    
    import cx_Freeze
    import matplotlib
    import sys
    import numpy
    import tkinter
    
    base = None
    
    if sys.platform == "win32":
        base = "Win32GUI"
    
    executables = [cx_Freeze.Executable("test.py", base=base)]
    
    
    build_exe_options = {"includes":   ["matplotlib.backends.backend_tkagg","matplotlib.pyplot",
                                 "tkinter.filedialog","numpy"],
                         "include_files":[(matplotlib.get_data_path(), "mpl-data")],
                         "excludes":[],
                        }
    
    cx_Freeze.setup(
        name = "test it",
        options = {"build_exe": build_exe_options},
        version = "1.0",
        description = "I test it",
        executables = executables)
    

Any ideas that might solve the issue are highly appreciated. I'm working on a
64-bit Windows10 machine and I'm using the WinPython Distribution with Python
3.4.3.


Answer: I found a potential solution (or at least an explanation) for this problem
while testing PyInstaller with the same **test.py**. I received error message
about a dll file being missing, that file being **mkl_intel_thread.dll**.

I searched for that file and it was found inside **numpy** folder. I copied
files matching **mkl_*.dll** and also **libiomp5md.dll** to the same directory
where the **test.exe** created by `python setup.py build` was. After this the
minimal **test.exe** showed the matplotlib window when pressing the **plot**
button.

The files were located in folder **lib\site-packages\numpy\core**.

