Как исправить файл Exe, работающий только на одном компьютере - PullRequest
1 голос
/ 29 марта 2019

Я создал базовый экран в Pygame и хочу скомпилировать его, чтобы отправить другу в качестве теста, и файл отлично работает на моем компьютере

Однако на компьютере моих друзей это не такзапустить.

У него нет версий python или pygame на их компьютере, и я использую интерпретатор Pycharm Project с установленными только pygame и cx_Freeze

Код игры

import sys, pygame

size = 600, 600
pygame.init()

screen = pygame.display.set_mode(size)

colour = (70, 70, 70)

while 1:

    screen.fill(colour)

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

    pygame.display.update()

Файл сборки

import cx_Freeze
import os

os.environ['TCL_LIBRARY'] = r'C:\Users\jls45\Documents\Curse\code\BigBossBattleGame\venv\Scripts\tcl86t.dll'
os.environ['TK_LIBRARY'] = r'C:\Users\jls45\Documents\Curse\code\BigBossBattleGame\venv\Scripts\tk86t.dll'

executables = [cx_Freeze.Executable("Main.py")]

cx_Freeze.setup(
    name="Test",
    options={"build_exe": {"packages":["pygame"],
                           "include_files":["test.png"]}},
    executables = executables
)

1 Ответ

0 голосов
/ 30 марта 2019

Поскольку у вашего друга нет Python или pygame, у него, вероятно, также нет tk / tcl. Вам нужно будет упаковать эти .dll в ваш исполняемый файл.

"include_files":[
    "test.png",
    r'C:\Users\jls45\Documents\Curse\code\BigBossBattleGame\venv\Scripts\tcl86t.dll',
    r'C:\Users\jls45\Documents\Curse\code\BigBossBattleGame\venv\Scripts\tk86t.dll',
]
...