Простая игра Pong не будет работать как .exe - PullRequest
0 голосов
/ 17 апреля 2020

Я новичок в этом форуме и имею ограниченный опыт python. После этого карантина я решил вернуться к обучению python. За последние несколько дней я создал несколько рабочих игр, в которых использовались как ругательства, так и пигмейки. Эти игры нормально работают на моем P C, но я бы хотел получить их в формате .exe. Я использовал pyinstaller для создания .exe, однако моя игра в понг (которая использует pygame) вылетает при попытке открыть файл .exe. Я предполагаю, что это может иметь отношение к импорту пигмеев. Любая помощь приветствуется.

Вот ссылка на мой код на GitHub: https://github.com/nick-cheshire/PythonGames-/blob/master/Pong.py

Благодаря @TheBigKahuna я смог создать файл .bat и запустить его, и вот ошибки, которые я получил:

``Traceback (most recent call last):
  File "Pong.py", line 137, in <module>
    pong()
  File "Pong.py", line 90, in pong
    game_font = pygame.font.Font("freesansbold.ttf", 32)
  File "site-packages\pygame\pkgdata.py", line 50, in getResource
  File "site-packages\pkg_resources\__init__.py", line 1134, in resource_exists
  File "site-packages\pkg_resources\__init__.py", line 1404, in has_resource
  File "site-packages\pkg_resources\__init__.py", line 1472, in _has
NotImplementedError: Can't perform this operation for unregistered loader type
[18912] Failed to execute script Pong``

1 Ответ

0 голосов
/ 17 апреля 2020

Мне удалось заставить его работать. Проблема была со шрифтом. Измените вашу строку

game_font = pygame.font.Font("freesansbold.ttf", 32)

на

game_font = pygame.font.SysFont("Arial", 20)

Я предполагаю, что проблема в том, чтобы найти файл. Пожалуйста, исправьте, если я ошибаюсь. Теперь при создании .exe с pyinstaller убедитесь, что ваш файл называется main.py, и, поскольку вы создаете GUI, вам понадобится параметр -w (без консоли). Итак, я предлагаю запустить powershell от имени администратора, перейдите к main.py и:

pyinstaller --onefile -w main.py

Надеюсь, это сработает.

...