1

你好!

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

如何解决?另外,我正在使用 inno setup 进行安装,但我也不知道如何在那里找到解决方案。

非常感谢你!

4

2 回答 2

1

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

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

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

于 2012-11-05T17:17:53.717 回答
0

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

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

我昨天写了一个详细的解释,所以看看这个链接:

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

- 编辑 -

*确保您使用 pyinstaller 1.5 ,因为 2.x 版本的工作方式并不完全相同

于 2012-11-08T02:51:15.673 回答