2009-11-15 82 views
2

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

回答

1

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

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

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

+0

啊。这解释了一些事情。什么dll/pyd文件负责tkinter? –

1

为什么不使用py2exe将应用程序捆绑为可执行文件?它应该照顾所有的依赖关系,并将包括你需要的任何东西。

+0

因为该应用程序不是基于python的。它基于C++并使用python来添加脚本支持。 –