2014-05-21 43 views
2

我想從python腳本創建一個使用cx_Freeze的可執行文件,並且看起來tkinter模塊的某些部分沒有被加載到可執行文件中。該腳本文件包含導入語句:使用cx_Freeze創建可執行文件後,仍然收到'filedialog'錯誤

from tkinter import * 
from tkinter.filedialog import askopenfile, asksaveasfile 
from tkinter.messagebox import * 
import subprocess 
import time 

在我的劇本我有一些代碼,看起來像這樣:

f_outfile = filedialog.asksaveasfile(initialdir=r'c:\Program Files (x86)\LTC\LTSpiceIV') 

當我運行從IDLE殼內這個腳本,它完美的作品。我創建一個可執行文件使用一個setup.py文件看起來像這樣cx_Freeze:

from cx_Freeze import * 

setup(name="voltage_substate_GUI", 
    version="0.1", 
    description="test", 
    executables=[Executable("voltage_substate_GUI.pyw")], 
) 

的可執行文件沒有任何問題產生,但是當我運行可執行我在說

控制檯窗口得到一個錯誤
NameError: name 'filedialog is not defined' 

然而,腳本的其餘部分,這將創建一個圖形用戶界面,看起來蠻好的工作----所有按鈕的工作以及所有條目()項,對等

有什麼想法問題?

謝謝!

+0

您可以在凍結時添加輸出嗎? –

+0

Try:'f_outfile = tkinter.filedialog.asksaveasfile(initialdir = r'c:\ Program Files(x86)\ LTC \ LTSpiceIV')'這會讓python知道'filedialog'是變色模塊而不是變量。 – Anthony

回答

2

由於某些原因,我必須在腳本凍結時明確導入'filedialog'和'messagebox'子模塊。

import tkinter.filedialog as fdialog 
import tkinter.messagebox as msgbox 
import tkinter 

雖然「標籤」,「按鈕」,「框架」,「進入」等工作得很好,誰知道有多少人必須在該方式進口。希望這可以幫助某人。

相關問題