Pyinstaller-将Excel文件捆绑到onefile exe

时间:2020-07-26 07:05:53

标签: python pandas tkinter pyinstaller

我使用pyinstaller创建了一个EXE文件,其中包括excel文件。请参阅以下代码:

import pandas
from tkinter import *
    
sec = pandas.read_csv("sectionsize.csv")
    
win = Tk()
win.title('Imp vs Metric Section size')
win.geometry('320x100')
win.attributes("-topmost", True)
win.resizable(0,0)

def reset(dummy=None):
    e1.delete(0, 'end')
    e2.delete(0, 'end')
    
def conv(dummy=None):
    s1 = str(e1.get())
    s2 = str(e2.get())
    a = s1.upper()
    b = s2.upper()
    
    if len(a)!=0 and len(b)==0:
        try:
            imp_index = sec[sec['Imperial']==a].index[0]
            x = sec['Metric'][imp_index]
            e2.delete(0, 'end')
            e2.insert(END, x)
        except:
            x = 'Check Section size'
            e2.delete(0, 'end')
            e2.insert(END, x)
    
    elif len(a)==0 and len(b)!=0:
        try:
            metric_index = sec[sec['Metric']==b].index[0]
            y = sec['Imperial'][metric_index]
            e1.delete(0, 'end')
            e1.insert(END, y)
        except:
            y = 'Check Section size'
            e1.delete(0, 'end')
            e1.insert(END, y)
            
    elif len(a)!=0 and len(b)!=0:
        e1.delete(0, 'end')
        e2.delete(0, 'end')
    else:
        pass

win.bind('<Return>', conv)
win.bind('<Escape>', reset)

l1=Label(win, text='Imperial')
l1.place(x=25, y=10)

l2=Label(win, text='Metric')
l2.place(x=25, y=50)

e1=Entry(win, width=30)
e1.place(x=90, y=10)
e1.focus_set()

e2=Entry(win, width=30)
e2.place(x=90, y=50)
  
win.mainloop()

exe文件打开并在我的计算机上完美运行。唯一的问题是,此文件要求excel文件位于同一文件夹中。如何在不使用外部文件的情况下将excel文件捆绑到EXE中?任何输入都会真正有帮助。

1 个答案:

答案 0 :(得分:0)

为此,您必须使用--add-data标志

来自Pyinstaller的文档:

要捆绑的内容,在何处搜索: --add-data >要添加到的其他非二进制文件或文件夹 可执行文件。路径分隔符是平台 特定的os.pathsep(在Windows上为;:在大多数Unix系统上)。此选项 可以多次使用。