【发布时间】:2023-12-30 04:29:01
【问题描述】:
我已经构建了一个使用 Tkinter 的 Python (2.7) 应用程序,并且正在尝试使用 Pyinstaller (3.2) 构建一个 Windows7 .exe。该应用程序在 Windows 中的工作原理是我以 python myapp.py 运行它,但一旦编译成可分发的 pyinstaller,我会收到以下错误消息:
ImportError: No module named Tkinter
为了确定,myapp.py 的顶部包含:
from copy import deepcopy
import cPickle as pickle
import Tkinter as tk
from PIL import ImageTk
查看分发目录,我看到了 tk85.dll、tcl85.dll 和两个相关的目录,tcl/ 和 tk/
我发现了许多对辅助 Tkinter 依赖项的引用,例如导入 Tkinter itslef 的 matplotlib,但我没有找到像这样的直接依赖项的任何细节。
任何想法如何让这个工作?
【问题讨论】:
-
我将 Python 脚本转换为 exe,但发现 PyInstaller 会产生问题。尝试使用 Cx_Freeze 来代替。它是无忧无虑的,就像一个魅力。
-
不知道那个。我会试一试,一旦我这样做了报告。
-
我尝试了 cx_Freeze,离我更近了。我不得不加入一些排除项以避免某些包错误。但是,现在我遇到了字体问题。我正在使用的其中一个包也使用 Pillow 和一些 PIL 字体。我已经找到了为包存储字体的位置,但无法完全设置好以了解它们的存在。我将它们直接复制到 build/exe 目录,但没有运气。我还看到了 cx_Freeze 文档中关于包含数据文件的部分,但我不确定如何使其工作。
标签: python-2.7 tkinter pyinstaller