2010-02-08 93 views
5

我想在tkinter中使用ttk模块为GUI应用程序创建Windows的可执行文件。我做了一个exe与cx_freeze,但是当我在控制台中运行的应用程序它给了我下面的错误:cx_Freeze ImportError:无法导入名称

D:\My Dropbox\python\SAR Calculator\src\dist_tk> 
Traceback (most recent call last): 

    File "C:\Python31\lib\site-packages\cx_Freeze\ 
7, in <module> 

    exec(code, m.__dict__) 

    File "sarcalc_tk.py", line 14, in <module> 

    File "C:\Python31\lib\tkinter\__init__.py", li 

    from tkinter import _fix 

ImportError: cannot import name _fix 

这里有14和15行从我的代码:

import tkinter as tk 
import tkinter.ttk as ttk 

回答

5

貌似cx_freeze没有意识到它应该包括tkinter._fix模块,该模块由tkinter/__init__.py有条件地导入。你可以告诉它包括模块明确与--include-modules命令行参数,或includes关键字参数cx_Freeze.Executablesetup.py

+0

感谢,但现在我有一个init.tcl中的错误,我解决这个manualy includig TCL8.5和dist文件夹中的tk8.5文件夹,但我认为并不是最好的解决方案。 – Alquimista 2010-02-08 17:24:41

+0

这是正确的,一般情况下冻结不是最好的解决方案:)冷冻应用程序(py2exe,cx_Freeze,py2app等)需要确切地知道要打包什么。他们都试图猜测包含哪些Python模块,但正如你所看到的,他们有时会失败。其他文件的依赖关系不能自动处理,因此总是有问题。 – 2010-02-08 17:45:07

相关问题