Почему я получаю сообщение об ошибке в pyinstaller, когда я пытаюсь конвертировать файл py? - PullRequest
0 голосов
/ 26 апреля 2020

Извините, если раньше об этом спрашивали, но я пытаюсь взять файл python и преобразовать его в exe-файл с помощью pyinstaller. Однако, когда я это делаю, я получаю сообщение об ошибке:

«Не удалось выполнить сценарий python».

Вот код пигмея:


import pygame
pygame.init()

clock = pygame.time.Clock()

screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption("Auto Maze!")


myfont = pygame.font.SysFont("Arial", 13)

x, y = 168, 100

gameover = False
gameover2 = False
done = False
while not done:
    for event in pygame.event.get():

        if event.type == pygame.QUIT:
            done = True

        if event.type == pygame.MOUSEBUTTONDOWN:
            if gameover:
                if button1.collidepoint(event.pos):
                    gameover = False
                    gameover2 = gameover
                    x, y = 168, 100

    screen.fill((0, 0, 0))

    """try:
assert player.colliderect(wall1)
except AssertionError:
pass
except NameError:
pass
else:
death_screen = pygame.display.set_mode((400, 300))
button1 = pygame.draw.rect(death_screen, (0, 0, 255), (200, 200, 30, 30))
if donk:
break"""
    if not gameover:
        pressed = pygame.key.get_pressed()

        if pressed[pygame.K_w]:
            y -= 5
        elif pressed[pygame.K_s]:
            y += 5
        elif pressed[pygame.K_a]:
            x -= 5
        elif pressed[pygame.K_d]:
            x += 5

        player = pygame.draw.rect(screen, (0, 255, 0), (x, y, 60, 60))
        wall1 = pygame.draw.rect(screen, (255, 0, 0), (400, 0, -150, 300))
        wall2 = pygame.draw.rect(screen, (255, 0, 0), (0, 0, 150, 300))
        if player.colliderect(wall1):
            gameover = True
        elif player.colliderect(wall2):
            gameover = True
        else:
            gameover = False

    else:
        button1 = pygame.draw.rect(screen, (0, 0, 255), (175, 100, 60, 30))
        text = myfont.render("Try Again", False, (255, 0, 0))
        screen.blit(text, (176, 107 ))

    pygame.display.flip()
    clock.tick(60)

quit()

И вот что я набрал, чтобы конвертировать файл:

pyinstaller --onefile -w "import pygame".py

Кроме того, если есть какие-либо лучшие альтернативы pyinstaller, пожалуйста, сообщите мне. Я слышал, что pyinstaller не самый лучший.

А для тех, кто интересуется, я на windows 10. Спасибо!

1 Ответ

1 голос
/ 26 апреля 2020

Вам нужно указать pyinstaller на ваш .py файл, а не на первую строку вашего .py файла. Например, если ваш файл называется example.py, вам нужно написать

pyinstaller --onefile -w example.py
...