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

时间:2017-10-28 01:56:26

标签: python pygame 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

再次感谢。

1 个答案:

答案 0 :(得分:2)

如果您使用的是python 3.3或3.4,则可以使用py2exe。 通过pip安装,{cm}中的pip install py2exe 注意:如果是'pip' is not recognized as an internal or external command,请导航到安装python的目录,/ script可能是: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