python编写游戏怎么打包——详解python+pygame游戏开发之使用Py2exe打包游戏为exe文件

本文介绍了如何使用Py2exe将Python与pygame开发的游戏打包成exe可执行文件,详细讲解了Py2exe的安装、配置及打包流程。虽然Py2exe打包的文件较大,但通过排除不必要的库可以减小体积。打包时要注意针对Font模块的特殊处理,并建议使用自定义字体文件以避免问题。
摘要由CSDN通过智能技术生成

python编写游戏怎么打包


最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本。

这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编译,python毕竟是脚本程序)成一个可执行文件势在必行。

在网上搜了几款关于python打包的程序,使用以后发现Py2exe是比较实用和方便的(py2exe是免费的)。

1.简介

Py2exe可以将一个Python程序打包成exe可执行文件,方便没有Python环境的电脑上使用程序。

使用Py2exe打包需要编写一个打包脚本,执行后可以得到打包文件。对于32位版本,Py2exe可以将程序打包成单文件;对于64位版本,暂时还不支持打包成单文件。

不过,无论如何压缩,目前Py2exe打包出来的程序都还是偏大的。

2.软件准备

首先到py2exe的官网http://www.py2exe.org/ 去下载安装包,注意需要对应自己的python版本,要不然会出现问题。

双击exe文件,一路next下去即可。需要注意的是,32位版本和64位版本必须和Python使用的版本配套。

3.打包流程

py2exe是需要写一个脚本进行打包的操作,使用下面这个专为pygame写就的脚本(参考py2exe官方),可以极大的方便打包操作,注意在使用前修改BuildExe里的各个参数。

#!python
# -*- coding: gb2312 -*-

# 这个脚本专为pygame优化,使用py2exe打包代码和资源至dist目录
#
# 使用中若有问题,可以留言至:
#  //eyehere.net/2011/python-pygame-novice-professional-py2exe/
#
# 安装需求:
#         python, pygame, py2exe 都应该装上

# 使用方法:
#         1: 修改此文件,指定需要打包的.py和对应数据
#         2: python pygame2exe.py
#         3: 在dist文件夹中,enjoy it~

try:
    from distutils.core import setup
    import py2exe, pygame
    from modulefinder import Module
    import glob, fnmatch
    import sys, os, shutil
except ImportError, message:
    raise SystemExit,  "Sorry, you must install py2exe, pygame. %s" % message

# 这个函数是用来判断DLL是否是系统提供的(是的话就不用打包)
origIsSystemDLL = py2exe.build_exe.isSystemDLL
def isSystemDLL(pathname):
    # 需要hack一下,freetype和ogg的dll并不是系统DLL
    if os.path.basename(pathname).lower() in ("libfreetype-6.dll", "libogg-0.dll", "sdl_ttf.dll"):
        return 0
    return origIsSystemDLL(pathname)
# 把Hack过的函数重新写回去
py2exe.build_exe.isSystemDLL = isSystemDLL

# 这个新的类也是一个Hack,使得pygame的默认字体会被拷贝
class pygame2exe(py2exe.build_exe.py2exe):
    def copy_extensions(self, extensions):
        # 获得pygame默认字体
        pygamedir = os.path.split(pygame.base.__file__)[0]
        pygame_default_font =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值