TkDnd在Spyder中工作,但在转换.exe后给出错误

时间:2019-07-06 08:37:38

标签: python-3.x tkinter drag-and-drop

我正在创建一个对文件进行排序并根据文件名合并它们的应用程序。将文件从文件浏览器拖放到小部件的列表框中时,我需要文件路径。对于Tkinter,我安装了TkDnd。我遵循了How to Install and Use TkDnD with Python 2.7 Tkinter on OSX?的指示,它对我有用。我正在使用Anaconda,并且在C:\ Users \ Anaconda3 \ tcl和C:\ Users \ Anaconda3 \ Lib \ site-packages中浏览文件夹。我正在使用Spyder和python 3.7。我从下面的命令中使可执行文件:

fmt.Println(raw["emails"].([]interface{})[0])

打开文件后,出现错误:

致命错误“ .py无法执行”

我知道这个问题与链接TkDnd有关。

我尝试使用--onedir制作可执行文件,但它仍然给我错误。但是将tkdnd2.8复制到dist后就可以了。

这是我使用TkDnd的代码:

    pyinstaller --onefile -w PDF_Merger.py

drop方法仅获取pdf文件并将其设置为listBox。

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

2 个答案:

答案 0 :(得分:0)

我通过使用--add-data属性从tkdnd2.8文件夹添加文件,同时使用pyinstaller生成可执行文件,解决了该问题。我能够用onefile创建它。

答案 1 :(得分:0)

这篇文章已经有几年了,但我在寻找问题时找到了它。最后我是这样解决的:

pyinstaller --onefile --add-data=C:\ProgramData\Anaconda3\tcl\tkdnd2.8\;' myfile.py