如何打包tkinter?
我正在发布一个使用Python/C接口的应用程序。我把所有标准的Python模块放在了一个叫python31.zip的文件里,这个文件其实就是Python安装目录下Lib文件夹的一个压缩包。现在遇到的问题是,大多数常用的模块,比如sys和io,都能正常工作。但是tkinter却不行。我收到一个错误提示:“找不到模块_tkinter”。我在项目中真的需要tkinter。如果有帮助的话,我是在Windows系统上。
2 个回答
1
你为什么不使用 py2exe 来把你的应用打包成一个可执行文件呢?它可以处理所有的依赖关系,并且会把你需要的东西都包含进去。
1
我不知道将tkinter和你的应用打包的最佳方法,但我知道你为什么会遇到这个错误。以下是关于zipimport模块文档中相关的部分:
ZIP压缩包中可以有任何文件,但只有以.py和.py[co]结尾的文件可以被导入。动态模块(.pyd,.so)是不允许从ZIP中导入的。需要注意的是,如果一个压缩包只包含.py文件,Python不会尝试通过添加相应的.pyc或.pyo文件来修改这个压缩包,这意味着如果一个ZIP压缩包不包含.pyc文件,导入时可能会比较慢。
模块_tkinter是一个C扩展/共享库。它不能从ZIP文件中导入。