2017-06-13 54 views
0

剛剛開始使用Pyinstaller(並且有點與Tk窗口),並且無法讓我的tkinter Windows應用程序(在python 3.5下)成功運行。我可能會做一些愚蠢的事情,但我已經嘗試了一切我知道的事情,而且我真的需要這樣做,所以任何幫助都非常感謝。只需要注意,我的所有代碼都可以在正常的python 3.5.1下運行& 3.5.3。安裝最新版本的PyInstaller(3.2.1),它似乎運行正常。Pyinstaller與python 3.5上的tkinter應用程序的問題

我切換到下面的簡單窗口「Hello World!」應用程序,看看我能否得到這個工作,

from tkinter import * 
root = Tk() 
root.title("Test Window") 

#Setup window widgets and place on window 
l1 = Label(root,text='Hello World!',font=("Verdana",18)) 
l2 = Label(root,text='Hello World!',font=("Times New Roman",9)) 
b1 = Button(root, text='Button 1', font=("Verdana",12), state=DISABLED) 
b1.pack() 
b1.place(x=220, y=180) 

l1.pack() 
l1.place(x=170, y=10) 
l2.place(x=200, y=60) 

root.mainloop() 

但它似乎有我的原始應用程序相同的問題。

也許這只是因爲我是新來PyInstaller,但我沒有找到的文檔很容易找到具體的答案。但是看起來更深一點,我決定在命令行中添加-d選項以查看調試輸出,因爲它試圖執行我的應用程序,所以我使用的完整命令行是:> pyinstaller -F -w - dc:\ PythonApps \ Hello.py。這給了我大量的信息在此錯誤消息結束:

無法執行腳本pyi_rth_tkinter。

這是我看到我的原始程序相同的錯誤。我能夠在我的系統上找到'pyi_rth_tkinter.py'(實際上是2個版本的文件),不知道爲什麼PyInstaller在執行時遇到問題。但是,由於該文件吐出有關Tcl數據目錄的路徑問題的錯誤消息,因此猜測它會失敗,即使它發現&運行該文件。

OK,在PyInstaller的運行過程中的輸出更緊密地看着,我看到有一些看起來像他們可能會導致我的問題的幾行:

3541 INFO: Loading module hook 'hook-_tkinter.py' 
ImportError: cannot import name 'Tcl' 
3659 ERROR: Tcl/Tk improperly installed on this system. 

我看着「鉤-tkinter.py「鉤子文件(並通過PyInstaller文檔閱讀),但沒有看到任何明顯的錯誤。但我並沒有完全意識到鉤子文件的所有細節,以及它們需要包含的內容(任何人都可以幫助解決這個問題)。不完全確定問題是什麼,但PyInstaller出現連接tkinter的問題,導致我的應用程序無法運行。有沒有人GOTTEN PyInstaller 3.2.1即使是一個簡單的PYTHON 3.5 WINDOWS應用程序?如果是這樣,請分享如何!我已經做了大量的搜索和閱讀工作,但一直未能發現問題所在。如果有人有線索,請幫忙。任何指導,非常感謝!


一些額外的信息。不知道爲什麼PyInstaller說Tcl/Tk沒有正確安裝。我剛剛安裝了Python 3.5.3,並且tkinter自動安裝。執行'tkinter._text()'在一個外殼,它似乎工作正常。在正常使用python的情況下,tkinter的所有用法在3.5的所有版本下也可以正常工作。我只有與PyInstaller有關的tkinter問題。驗證與'tkinter.Tcl()的eval(' 信息PATCHLEVEL ')'安裝的Tcl/Tk的準確版本並報告'8.6.4'。有誰知道Tcl/Tk的任何其他安裝問題可能是一個問題?我並沒有做什麼特別的安裝Tkinter的,我只是做了通過pyinstaller的正常安裝在執行全新安裝「蟒蛇3.5.3」後「PIP安裝pyinstaller」。還有什麼我該做的?任何幫助是極大的讚賞!!!

回答