【问题标题】:Python 2.7 (with Tkinter) project into a stand-alone exe?将 Python 2.7(带有 Tkinter)项目转换为独立的 exe?
【发布时间】:2011-09-17 15:49:54
【问题描述】:

我已经搜索了很长时间并尝试了所有方法。就是做不出来。

我想做的是为我的小程序制作一个独立的 exe,它使用 Tkinter,适用于 Windows。到目前为止,我已经完成了使它成为一个 exe,但是 dist/ 文件夹包括一个文件夹 tcl/ 和一个额外的 exe 文件。如何摆脱这些?

另外,我还无法制作一个可以工作的 exe。这是我的setup.py

from distutils.core import setup
import py2exe
import sys
if len(sys.argv) == 1:
    sys.argv.append("py2exe")

setup(
    options = {
        "py2exe": {"compressed": 1, "optimize": 2, "ascii": 1, "bundle_files": 1, "includes": ["Tkinter"]}
        },
        zipfile = None,
        windows = [
        {
            "script": "hello.py",
            "icon_resources": [(0, "icon_16.ico")]
        }
    ]
)

使用此代码,我在运行后立即收到“此程序已停止响应”的通知。

通过删除选项“ascii”,程序无法运行并留下一个日志文件:

Traceback (most recent call last):
  File "hello.py", line 1, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "Tkinter.pyo", line 38, in <module>
  File "zipextimporter.pyo", line 82, in load_module
  File "FixTk.pyo", line 56, in <module>
  File "FixTk.pyo", line 23, in convert_path
LookupError: unknown encoding: mbcs

我对 Python 非常乐观,因为它看起来非常适合编写代码并寻求帮助,但如果没有它,我将无法编写任何代码。任何帮助表示赞赏。我是一个全新的人。

【问题讨论】:

  • 请参阅 this 关于如何将 tkinter 可执行文件与 py2exe 捆绑在一起的答案

标签: python tkinter py2exe python-2.7


【解决方案1】:

我认为它捆绑 tkinter 的方式存在一个错误,您无法在 python 中优化或捆绑 tkinter,去掉这些选项并尝试运行它。

【讨论】:

  • 我删除了整个options,它运行良好。那么没有办法让它成为一个独立的exe吗?
【解决方案2】:

Tkinter 需要“tcl”文件夹中的任何内容。 Tkinter 实际上链接到 Tcl 解释器(这意味着您可以在 Python 中运行 Tcl 命令!)。因此,您需要 Tcl 解释器所需的一切(包括对 Tk 的支持)。

您收到的错误是编码错误,在您的选项中我看到"ascii": 1。摆脱它,它应该可以解决问题。

另外,如果您打算为此编译程序制作安装程序,则没有真正的理由使用"compressed": 1 压缩程序(它只需要在分发时很小)。

【讨论】:

    【解决方案3】:

    您可以尝试使用以下位置提供的替代解决方案,该解决方案基本上使用安装程序方法。我也无法在 exe 中捆绑该 tcl 文件夹,所以我想这应该是一个更好的解决方案。

    http://www.py2exe.org/index.cgi/SingleFileExecutable

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多