【问题标题】:How to embed a text file into a single executable using py2exe如何使用 py2exe 将文本文件嵌入到单个可执行文件中
【发布时间】:2013-05-02 09:14:05
【问题描述】:

我有一个 python 脚本,它读取一个存储为 .txt 文件的大型字典文件。现在我想使用 py2exe 制作一个可执行文件。目前,我的设置如下所示:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

Mydata_files = [('.', ['dict_lookup.txt'])]


setup(console=['BladeHost.pyw'],
  options = {
    "py2exe": {
        'bundle_files': 1, #with this == 1, I have the weird CreateActCtx error msg
        'compressed': True,
        "dll_excludes": ["MSVCP90.dll", "gdiplus.dll"],

        }
    },
  zipfile = None,
  data_files=Mydata_files,
  )

此设置为我提供了 dist 文件夹中的可执行文件和 dict_lookup.txt。但是,我不希望可执行文件之外的这个愚蠢的 .txt 文件。我知道我将这个文本文件复制并粘贴到 python 脚本中的一个长字符串中,但这会使我的 python 脚本变得丑陋。

所以我的问题是,有没有办法设置 py2exe 以便将此 .txt 文件内置到可执行文件中?

感谢您的帮助。

【问题讨论】:

    标签: python py2exe


    【解决方案1】:

    将其作为字符串放入 Python 文件实际上是最常见的方式。例如,如果您查看PyQt resource system,您会看到它们将任何资源(图像、声音等)作为巨大的字节字符串嵌入到某些 Python 文件中,之后您不应修改这些文件。

    如果您想保持代码干净,只需创建一个名为 resources.py 或类似名称的单独 Python 文件。然后从该文件中导入变量。

    【讨论】:

    • 感谢您的快速回复。对此一定没有更好的解决方案。那我就听从你的建议。
    • py2exe 可能有解决方案。但无论如何,事情不会那么简单。例如,have a look at this question
    • 再次感谢。我在那个线程中使用了 Darren 的解决方案,效果很好。多么巧妙的解决方案!
    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    相关资源
    最近更新 更多