如何使用py2exe将文件放入文件夹中。

时间:2012-11-05 16:38:18

标签: python py2exe

嗨!

我在python中制作了一个国际象棋引擎,然后使用py2exe编译成.exe。问题是,当我将所有奇怪的文件聚集在同一个文件夹(dist)中时,它看起来不是很整洁。我想在dist文件夹中创建一个包含所有帮助文件的新文件夹,所以我所有的dist文件夹包含的是包含帮助文件和主启动应用程序的文件夹。但是,我不能简单地将帮助文件复制到新文件夹,因为计算机当时找不到它们并引发错误。

怎么解决?此外,我正在使用inno设置进行安装,但我无法弄清楚如何在那里找到解决方案。

非常感谢!

2 个答案:

答案 0 :(得分:0)

py2exe配置中有一项功能,允许您将所有Python文件捆绑在一个library.zip文件中。这将大大减少根目录中的文件数量,但仍然会保留一些文件,无论如何。

这些文件通常是DLL文件,至少从我在GUI应用程序中看到的文件。您无法删除这些内容,因为它们是启动应用程序所必需的。此问题的解决方法是创建一个批处理文件,该文件将运行可以位于子目录中的实际程序。关键是这些文件应该与可执行文件在同一目录中,或者当前工作目录,或者PATH环境变量中的路径。至少大多数情况都是如此。另一种方法可能是批处理文件,它将PATH变量或cd修改为另一个目录,然后运行该文件

我从未尝试过,所以它可能会为你打破一些东西。无论如何,IMO最好的方法是创建一个安装程序并添加快捷方式,你不必为用户搞乱这些文件而烦恼。

答案 1 :(得分:0)

尝试使用pyinstaller。它易于使用,并将PythonLib和所有必需的python文件编译为独立的EXE。所以你不必担心你的dist文件中有一堆乱七八糟的文件。 (只有一个单独的exe)。

如果您有其他外部文件,例如数据库,文本文件,csv。等等......您可以将它们设置为以您想要的方式从inno设置[文件]部分进行部署。

我昨天写了详细的解释,请查看此链接:

https://stackoverflow.com/a/13259452/1339024

- 编辑 -

*确保使用pyinstaller 1.5,因为2.x版本不能完全相同