-1

I have created a mini app that is used for combining a bunch of excel files, but I cant execute the exe due to this error. What I find strange is that I am not even using Numpy in my script. I have installed and reinstalled numpy, but that did not fix the issue.

I created a virtual environment which has the following libraries installed.

enter image description here

Error on Executing exe enter image description here

Here is my code:

import tkinter as tk
from tkinter.simpledialog import askstring, askinteger
from tkinter.messagebox import showerror
from tkinter import messagebox
from tkinter import filedialog
from tkinter import ttk
import os
from os import path
import pandas as pd
import fnmatch
import glob
import datetime
from datetime import datetime
import time
import calendar

class Splash(tk.Toplevel):
    def __init__(self, parent, width=0.8, height=0.6, useFactor=True):
        tk.Toplevel.__init__(self, parent)
        self.title("Splash")
        w = 300
        h = 200
        x = 50
        y = 100
        self.geometry('%dx%d+%d+%d' % (w, h, x, y))
        lbl = tk.Label(self,text="Combine Excel\n Version 1.0", bg = 'lightgrey' )
        lbl.place(x=25, y=30)
        self.master.overrideredirect(True)
        self.lift()
        ## required to make window show before the program gets to the mainloop
        self.update()

class App(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.withdraw()
        splash = Splash(self)
        ## simulate a delay while loading
        time.sleep(1)
        ## finished loading so destroy splash
        splash.destroy()

def getfiles():
    listbox.delete(0,tk.END)
    beginput = entry_1.get()
    endinput = entry_2.get()
    timefmt = "%m/%d/%y"
    start = calendar.timegm(datetime.strptime(beginput, timefmt).timetuple())
    end = calendar.timegm(datetime.strptime(endinput, timefmt).timetuple())
    year = datetime.strptime(beginput, timefmt).strftime('%Y')
    monthyr = datetime.strptime(beginput, timefmt).strftime('%m-%y') +  ' Daily Collection'
    yearmm = 'CA_LoanLvl_' + time.strftime("%Y%m%d")
    yrnmsum = 'CA_Sum_' + time.strftime("%Y%m%d")

    frame = pd.DataFrame()
    list_ = []

    cols = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,37,39,40,41,43,44,45,46,47,49,50,51,52,53,54,55,56,57]
    path1 = path.join(r'\\corp.int\cms\DeptData\Monthly Reporting'
                     '\Daily Collection',year,monthyr,'Data')

    pathexpt = path.join(r'\\corp.int\cms\DeptData\XX\DS\DataDownloads\Combine',yearmm)
    pathexptsum = path.join(r'\\corp.int\cms\DeptData\XX\DS\DataDownloads\Combine',yrnmsum)

    mypath = path1
    def test(f):
        if (not os.path.isfile(f)):
            return 0
        (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(f)

        return start<=ctime and end>=ctime

    files = [f for f in glob.glob(os.path.join(mypath, "adv*")) if test(f)]
    for item in files:
        listbox.insert(tk.END, os.path.basename(item))    



if __name__ == "__main__":
    App()

# Create the main window

root = tk.Tk()
s = ttk.Style(root)
s.theme_use('clam')

root.title("Combine GNMA Files")

# set the root window's height, width and x,y position
# x and y are the coordinates of the upper left corner
w = 600
h = 400
x = 50
y = 100
# use width x height + x_offset + y_offset (no spaces!)
root.geometry("%dx%d+%d+%d" % (w, h, x, y))
# use a colorful frame
frame = tk.Frame(root, bg='darkblue')
frame.pack(fill='both', expand='yes')
label = tk.Label(frame, text="Start Date-mm/dd/yy", bg = 'lightblue')
label.place(x=20, y=30)
label2 = tk.Label(frame, text="End Date-mm/dd/yy", bg = 'lightblue')
label2.place(x=20, y=100)


entry_1 = tk.Entry(root)
entry_1.place(x=20,y=60)
entry_2 = tk.Entry(root)
entry_2.place(x=20,y=130)


btn_1 = tk.Button(root,text="Get Files", bg='light grey', command = getfiles)
btn_1.place(x=400, y=15)


listbox = tk.Listbox(root)
listbox.place(x=20, y=160, width = 400)


def on_closing():
    if messagebox.askokcancel("Quit", "Do you want to quit?"):
        root.destroy()

root.protocol("WM_DELETE_WINDOW", on_closing)


root.mainloop()
Mike Clark
  • 33
  • 7
  • Relevant [pip-install-numpy-pandas-fails](https://stackoverflow.com/questions/10214692/pip-install-numpy-pandas-fails) also [requirements with pip install in virtualenv](https://stackoverflow.com/a/11864171/7414759) – stovfl Jan 26 '19 at 06:18
  • It might also depend on how you execute the code. Are you sure you are using the Python where you have those packages installed? – Luca Angioloni Jan 26 '19 at 06:23
  • could you include the error in your post please – DrBwts Jan 26 '19 at 09:02
  • So basically I need to install numpy and then pandas? – Mike Clark Jan 27 '19 at 17:41

1 Answers1

0

If anyone runs across this, it seems it has to do with the version of Numpy that is causing errors with Pyinstaller. Take a look at the link below.

[How to fix 'Missing required dependencies ['numpy']' when running packaged app made with PyInstaller?

Mike Clark
  • 33
  • 7