【问题标题】:py2exe, executable: How to pack data into single file?py2exe,可执行文件:如何将数据打包成单个文件?
【发布时间】:2015-06-11 14:55:20
【问题描述】:

我想知道如何使用 py2exe 将多个文件打包到一个 Windows 可执行文件中。我可以将所有 python 文件(dll,...)放入一个 py2exe。但是如何将我自己的一些文件(即图像或配置文件)复制到我的可执行文件中,并使用相对路径将它们加载到 python 中。例如:

file = open("config.txt",r")
file2 = open("mysubfolder\config.txt","r")

【问题讨论】:

  • @Algo 我认为一个是不同的,因为它询问的是库,这个是关于额外的数据文件。

标签: python python-3.x exe py2exe


【解决方案1】:

我不知道您是否可以将图像文件嵌入到 exe 中。如果有办法,我也很感兴趣。我所知道的是,您可以从单独的文件夹中使用它们。为此,您需要修改设置文件。为要加载的内容添加数据路径。例如,将此添加到您的设置文件中:

import glob

data_files = [('mysubfolder', glob.glob('mysubfolder/config.txt'))]

setup(
   data_files = data_files,
   windows = [GUI2Exe_Target_1]
)

当然,您可以向 data_files 添加更多文件夹或文件。 而这个安装文件中的其他配置选项,可以参考py2exe官网。

【讨论】:

  • 感谢您的回答。您从哪个包导入 glob.glob?
  • 忘了说。导入全局
  • 它不起作用。它在我的 projectfolder/dist 位置创建文件夹 - 而不是在打包的可执行文件中。
  • 是的,我在回答中说过。我不知道你是否可以将这些文件嵌入到exe中。我只能把它们放到一个单独的文件夹中。
  • 不过:感谢您的回答
【解决方案2】:

如果您使用的是 PyQT(或 PySide),则可以将资源文件编译成 python 模块(.py 文件)。这样,你只需要import它们就可以使用它们,py2exe默认会将它们包含在可执行文件中。

the PyQt4 Resource System

【讨论】:

  • 这是个好主意,但我没有使用 pyqt。我使用 tkinter。尽管如此:谢谢你的回答
猜你喜欢
  • 2010-09-11
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 2016-07-30
相关资源
最近更新 更多