如何使用py2exe将文本文件嵌入到单个可执行文件中

时间:2013-05-02 09:14:05

标签: python py2exe

我有一个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文件内置到可执行文件中?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

如果要保持代码清洁,只需创建一个名为resources.py的单独的Python文件或类似的东西。然后从该文件中导入变量。