使用cx_freeze和pyGame创建一个独立的"包

时间:2014-07-23 01:48:26

标签: python pygame cx-freeze

有人在网上提到“Python可以让你的东西以每个人都可以下载和播放的方式分发,这基本上是让我远离Python的原因。我已经在整个互联网上搜索了适当的解决方案关于这个问题,但没有一个令人满意。“

到目前为止,我必须同意他们的观点。我无法“编译”(也许包更准确)我的Python代码使用pyGame到Ubuntu的exe文件。最后一步是尝试让Windows和Mac OS正常运行。

我正在使用: Python 2.7.6 linux2上的[GCC 4.8.2] 描述:Ubuntu 14.04 LTS 发布:14.04 代号:可信赖

使用cx_freeze进行“编译”的游戏代码示例:

import pygame, sys
from pygame.locals import *

pygame.init()

FPS = 30 # frames per second setting
fpsClock = pygame.time.Clock()

# set up the window
DISPLAYSURF = pygame.display.set_mode((1000, 1000), 0, 32)
pygame.display.set_caption('Animation')

WHITE = (255, 255, 255)
catImg = pygame.image.load('cat.png')
catx = 275
caty = 150
direction = 'right'

while True: # the main game loop
    DISPLAYSURF.fill(WHITE)

    if direction == 'right':
        catx += 5
        if catx == 280:
            direction = 'down'
    elif direction == 'down':
        caty += 5
        if caty == 220:
            direction = 'left'
    elif direction == 'left':
        catx -= 5
        if catx == 10:
            direction = 'up'
    elif direction == 'up':
        caty -= 5
        if caty == 10:
            direction = 'right'

    DISPLAYSURF.blit(catImg, (catx, caty))

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    pygame.display.update()
    fpsClock.tick(FPS)

1 个答案:

答案 0 :(得分:0)

要编译python,您需要创建一个名为setup的新脚本。

代码:

from cx_Freeze import setup, Executable, re

build_exe_options = {"include_files" : ["cat.png"]}

setup(name = "name of program",
      version = "0.1",
      description = "",
      options = { "build_exe" : build_exe_options },
      executables = [Executable("name of program.py")]) # Program name

将此代码放在python文件C:\python\27中并将程序放入其中,然后转到命令提示符并放置cd C:\python27然后C:\python27\python.exe setup.py build可执行文件将出现在文件内置中python文件夹。