从python脚本创建的可执行文件只触发DOS窗口

从python脚本创建的可执行文件只触发DOS窗口,python,tkinter,pyinstaller,Python,Tkinter,Pyinstaller,我想将名为DEEPEM_GANTT.py的python脚本转换为可执行文件。 我在线阅读了一些教程,决定使用pyinstaller来完成此操作 我继续使用pip将pywin32和pyinstaller安装到我的Python虚拟环境中: pip install pywin32 pip install pyinstaller 我第一次尝试转换脚本(pyinstaller--onefile DEEPEM\u GANTT.py)时返回了一个错误(FFi'对象没有属性“unpack”),但在更新cffi

我想将名为DEEPEM_GANTT.py的python脚本转换为可执行文件。 我在线阅读了一些教程,决定使用pyinstaller来完成此操作

我继续使用pip将pywin32和pyinstaller安装到我的Python虚拟环境中:

pip install pywin32
pip install pyinstaller
我第一次尝试转换脚本(
pyinstaller--onefile DEEPEM\u GANTT.py
)时返回了一个错误(
FFi'对象没有属性“unpack”
),但在更新cffi后,我能够生成一个名为DEEPEM\u GANTT.exe的.exe文件

唉,当双击这个文件时,它会启动一个DOS窗口,而不是启动本来要打开的tkinter对话框。我做错了什么?任何帮助都将不胜感激


我的剧本复制如下。该脚本用于根据使用多个传感器获取的数据创建甘特图。从Python终端启动时,脚本运行良好:

import scipy.io
import os 
import plotly.figure_factory as ff
from plotly.offline import plot
from struct import *
import datetime
from tkinter import filedialog
from tkinter import *



root = Tk()
filename = filedialog.askdirectory(title="Select the folder where your sites are stored")
root.destroy()

myroot=filename



df=[]

for folder in os.listdir(myroot):
    if os.path.isdir(myroot+'/'+folder):
        for subfolder in os.listdir(myroot+'/'+folder):
            if os.path.isdir(myroot+'/'+folder+'/'+subfolder) and subfolder[:4]=='meas':
                starttime_string=subfolder[5:]
                starttime=datetime.datetime.strptime(starttime_string, "%Y-%m-%d_%H-%M-%S")

                for atsfilename in os.listdir(myroot+'/'+folder+'/'+subfolder):
                    if atsfilename[-3:]=='ats':
                        file_stats=os.stat(myroot+'/'+folder+'/'+subfolder+'/'+atsfilename)
                        if file_stats.st_size>0:
                            file=open(myroot+'/'+folder+'/'+subfolder+'/'+atsfilename,'rb')
                            file.seek(4)
                            byte=file.read(4)
                            nos=unpack('i', byte)[0]
                            file.seek(8)
                            byte2=file.read(4)
                            sampling=unpack('f',byte2)[0]
                            duration=nos/sampling
                            stoptime=starttime+datetime.timedelta(seconds=duration)  
                            adu=atsfilename[:3]
                
                df.append(dict(Task=folder+'_'+adu, Start=str(starttime), Finish=str(stoptime), Resource=str(sampling)))



fig = ff.create_gantt(df, index_col='Resource', show_colorbar=True, group_tasks=True)
plot(fig)

这是制作窗口化GUI的基本pyinstaller代码

pyinstaller --onefile -w DEEPEM_GANTT.py 
-w
要求将其打开窗口。此外,还可以使用标志
--windowed
--noconsole


查看更多信息。

感谢您的快速回复,酷云。使用
-w
就可以了!可执行文件现在会打开Tkinter对话框窗口,这样您的答案就准确了。后来我仍然遇到了一个
致命错误
,但那是另一个故事…@Sheldon很高兴知道,请随意询问有关新错误的新问题。