2

我正在分发一个使用 Python/C API 的应用程序。我在 python31.zip 中有所有标准 python 模块,它基本上是 python 安装目录中 Lib 文件夹的存档。这是问题所在 - 最常见的模块,如 sys 和 io 工作正常。但是 tkinter 没有。我收到一个错误“找不到模块 _tkinter”。我的项目中真的需要 tkinter。如果有帮助,我正在使用 Windows。

4

2 回答 2

1

为什么不使用py2exe将应用程序捆绑为可执行文件?它应该处理所有依赖项,并将包含您需要的任何内容。

于 2009-11-15T06:16:03.157 回答
1

我不是将 tkinter 与您的应用程序捆绑在一起的最佳方式,但我确实知道您为什么会遇到错误。zipimport模块文档的相关部分:

ZIP 存档中可能存在任何文件,但只有文件 .py 和 .py[co] 可用于导入。不允许 ZIP 导入动态模块(.pyd、.so)。请注意,如果存档仅包含 .py 文件,Python 不会尝试通过添加相应的 .pyc 或 .pyo 文件来修改存档,这意味着如果 ZIP 存档不包含 .pyc 文件,则导入可能会很慢。

模块 _tkinter 是一个 c 扩展/共享库。它不能从 zip 文件中导入。

于 2009-11-15T06:57:20.063 回答