如何将具有多个模块的 pygame 应用程序转换为 .exe

How to convert a pygame application with multiple modules to .exe

我有一个 pygame 应用程序,我想将其转换为 .exe 格式。 Pygame2exe (https://pygame.org/wiki/Pygame2exe) 工作得很好,除了我无法弄清楚如何使用具有多个自定义模块的项目进行此转换。

例如:

python_project/
    main.py
    other.py

我需要编译这两个模块,不能合并它们。 我已经在这个问题上工作了几个星期,但没有找到任何解决方案。

我知道这是可能的,因为我让它工作了,然后格式化了唯一一个有代码副本的硬盘,却没有意识到我没有备份。

编辑

谢谢迈克尔。 我只需要对您提供的 setup.py 文件做一点小改动,使其字体兼容。这是完整的 setup.py 文件

from distutils.core import setup
import py2exe
import os

origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
       if os.path.basename(pathname).lower() in ["sdl_ttf.dll"]:
               return 0
       return origIsSystemDLL(pathname)
py2exe.build_exe.isSystemDLL = isSystemDLL
setup(windows=['main.py'])  

(取自Pygame font not working after py2exe

再次感谢。

如果你使用的是python3.3或3.4,你可以使用py2exe。 通过pip安装,在cmd中pip install py2exe 注意:如果 'pip' is not recognized as an internal or external command,导航到安装 python 的目录,/scripts 可能:C:\python34\scripts

创建一个名为 setup.py 的安装脚本, 仅需三行代码

from distutils.core import setup
import py2exe
setup(windows=['filename.pyw']          #probably pyw in windows, will be name of main file

然后在主文件和setup.py所在目录打开命令提示符,输入setup.py py2exe 不要在安装脚本中使用或 filename.pyw,使用主模块的名称。

这将创建一个名为 dist 的文件夹(您可以安全地删除“__pycache_”),其中包含您的 exe 运行 所需的所有文件! 你可能想要制作一个安装程序,我会推荐 Inno Setup (http://www.jrsoftware.org/isinfo.php)