cx_Freeze 导入错误:无法导入名称

5 投票
1 回答
9516 浏览
提问于 2025-04-15 19:02

我正在尝试为一个使用tkinter和ttk模块的图形界面应用程序创建一个Windows可执行文件。我用cx_freeze制作了一个exe文件,但当我在控制台运行这个应用时,出现了以下错误:

    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

1 个回答

5

看起来 cx_freeze 没有意识到它应该包含 tkinter._fix 这个模块,而这个模块是由 tkinter/__init__.py 条件性导入的。你可以通过在命令行中使用 --include-modules 参数,或者在你的 setup.py 文件中使用 cx_Freeze.Executableincludes 关键字参数,明确告诉它包含这个模块。

撰写回答