【问题标题】:Create a standalone windows exe which does not require pythonXX.dll创建一个不需要 pythonXX.dll 的独立 windows exe
【发布时间】:2010-10-16 23:22:22
【问题描述】:

有没有办法从 python 脚本创建一个独立的 .exe。 使用 py2exe 生成的可执行文件只能使用 pythonXX.dll 运行。 我想获得一个完全独立的 .exe,它不需要安装 python 运行时库。 它看起来像一个链接问题,但使用静态库而不是动态库,并且应用条带以删除未使用的符号也很有用。

有什么想法吗?

谢谢。

亚历山德罗

【问题讨论】:

    标签: python windows py2exe


    【解决方案1】:

    您可以在最新版本的 py2exe 中执行此操作...
    只需在您的 setup.py 文件中添加类似以下代码的内容(关键部分是“bundle_files”:1)。

    要在安装中包含您的 TkInter 包,请使用“包含”键。

    distutils.core.setup(
          windows=[
                {'script': 'yourmodule.py',
                 'icon_resources': [(1, 'moduleicon.ico')]
                }
          ],
          zipfile=None,
          options={'py2exe':{
                             'includes': ['tkinter'],
                             'bundle_files': 1
                            }
          }
      )
    

    【讨论】:

    • 解决方案运行良好,但是在 exe 中包含 tkinter 呢?如果我将它移出 dist 目录,可执行文件会崩溃,但它在存在“tcl”目录的 dist 中运行良好。
    • 哎呀,对不起,使用选项 'bundle_files':1 它无法从 dist 目录或从外部启动 exe。有没有办法在 exe 中也包含 tcl 库?谢谢。
    • 我更新了 options 变量,向您展示如何包含其他包。
    【解决方案2】:

    由于 Windows 的动态链接器的工作方式,如果您使用 .pyd 或 .dll Python 模块,您将无法使用静态库;在 Windows 中加载的 DLL 不会自动与可执行文件共享其符号空间,因此需要一个包含 Python 符号的单独 DLL。

    【讨论】:

      【解决方案3】:

      如果您拥有单个可执行文件的目的是为了方便下载/发送电子邮件等,我已经通过使用 Inno Setup 捆绑 py2exe 输出解决了这个问题。这实际上比拥有单个可执行文件要好,因为与其提供可以拖放到某个目录中的可执行文件,一个表现良好的 Windows 应用程序将提供一个卸载程序,显示在“添加/删除程序”小程序等中。Inno 处理所有这是给你的。

      【讨论】:

        【解决方案4】:

        另一种解决方案是使用 python 创建单个 exe,并在其中安装所有依赖项,包括 python.dll。包装器中有一点魔力,但它确实有效。详情在这里:

        http://code.google.com/p/pylunch/downloads/detail?name=PyLunch-0.2.pdf

        【讨论】:

          【解决方案5】:

          这不是最好的方法,但您可以考虑使用包含 .exe 和 .dll 文件的可执行 SFX 存档,并将其设置为在双击时执行您的 .exe 文件。

          【讨论】:

            猜你喜欢
            • 2013-12-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-12-29
            • 2014-06-06
            • 1970-01-01
            相关资源
            最近更新 更多