使用cx_Freeze创建可执行文件后,继续收到“filedialog”错误

时间:2014-05-21 17:56:07

标签: cx-freeze python-3.4

我正在尝试使用python脚本中的cx_Freeze创建可执行文件,并且看起来tkinter模块的某些部分未加载到可执行文件中。脚本文件包含import语句:

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 shell中运行这个脚本时,它可以完美地运行。我用cx_Freeze创建了一个可执行文件,使用的setup.py文件如下所示:

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'

然而,创建GUI的脚本的其余部分似乎工作得很好----所有按钮都可以和所有Entry()项目一样工作。

对这个问题的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

出于某种原因,我不得不在我冻结的脚本中明确导入'filedialog'和'messagebox'子模块。

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

虽然'标签','按钮','框架','条目'等工作正常,谁知道必须以这种方式导入多少其他人。希望这有助于某人。