TKDND在Spyder中工作,但在转换.exe后会出现错误



我正在创建一个分类文件并将其合并的应用程序。当我将文件从文件浏览器删除到小部件的列表框时,我需要文件播放。对于Tkinter,我安装了TKDND。我按照如何在OSX上使用Python 2.7 TKINTER安装和使用TKDND的说明?它对我有用。我正在使用Anaconda,并且在C: Users Anaconda3 tcl和C: Users Anaconda3 lib lib lib lib lib lib lib lib lib lib lib lib lib lib lib lib a anaconda3 tcl和c中的文件夹。我正在使用Spyder和Python 3.7。我从下面的命令中执行可执行文件:

    pyinstaller --onefile -w PDF_Merger.py

打开文件后,它给了我错误:

致命错误" .py无法执行"

我知道这个问题是关于链接tkdnd。

我尝试使用-Onedir使其可执行,但仍然给我带来了错误。但是将tkdnd2.8复制到区分后。

这是我使用TKDND的代码:

    from TkinterDnD2 import *
    widget = TkinterDnD.Tk()
    filesinfileslist = Variable(widget)
    FilesShow = ReorderableListbox(widget, font=('aerial',12), height = 23 , width = 45, listvariable = filesinfileslist,  selectmode = EXTENDED)
    FilesShow.place(x=10, y=40)
    FilesShow.drop_target_register(DND_FILES)
    FilesShow.dnd_bind('<<Drop>>', drop)

Drop方法仅获取PDF文件并将其设置为ListBox。

到目前为止,它在Spyder中起作用,但是.exe文件给了我错误。谁能告诉我如何解决此问题,或者如果我在代码中犯了一些错误?

我在使用pyinstaller生成可执行文件的同时,将来自tkdnd2.8文件夹中的文件添加到tkdnd2.8文件夹中解决了此问题。我能够用Onefile创建它。

这篇文章已经有几年了,但是当我寻找问题时,我就知道了。最后,我这样解决了:

pyinstaller --onefile --add-data=C:ProgramDataAnaconda3tcltkdnd2.8;' myfile.py 

最新更新