Pygame Distribution - Runtime Error - PullRequest
       14

Pygame Distribution - Runtime Error

3 голосов
/ 26 января 2012

Я работаю над проблемой с моей 2D аркадной игрой, запрограммированной на Python, используя модуль pygame в течение 2 дней, и я не могу найти решение.

Проблема заключается в следующем: я хочу создать исполняемый файл Windows, который правильно запускает мою программу.Мне уже удалось создать файл .exe, но я получаю сообщение об ошибке, как только я запускаю exe:

Runtime Error!
Path\MyGame.exe
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Я пытался создать файл .exe с каждым модулем, который облегчаетпостроить один, например cx_freeze, py2exe, pyinstaller.В конце не имеет значения, какой из них я использовал, я получил ту же ошибку.Я уже пытался запустить файл .exe с другого компьютера, не удалось.Обновил распространяемый Microsoft Visual C ++, ничего не помогло.

Так что ошибка должна быть где-то в моем коде.Программа работает правильно, но должно быть что-то, что мешает мне сделать файл .exe, который работает нормально.

Код содержит около 1000 строк, я знаю, что это слишком много, чтобы просить кого-то проверить всюкод, но я надеюсь, что у кого-то была похожая проблема с этим или есть несколько советов, почему эта ошибка появляется и может помочь мне.

Вы можете найти код здесь .

Ответы [ 3 ]

4 голосов
/ 26 января 2012

Проблема не в вашем коде, а в том, как вы генерируете свой .exe.Делать это с Pygame - настоящая сучка, но с некоторыми хакингом и гуглом вы можете это сделать.

3 голосов
/ 05 марта 2013

Были схожие проблемы и с этим тоже. Найден способ их решения:

Через несколько недель (была эта проблема еще раньше), я счастлив сказать, что решил эту проблему! :)

1-я часть моей проблемы (http://i.stack.imgur.com/WpkjR.png): Я решил это, отредактировав скрипт setup.py, добавив в него часть «исключает». Это привело к успешному созданию исполняемого файла!

Изменен скрипт setup.py:

from distutils.core import setup
import py2exe
setup(windows=['source_static.py'], options={
          "py2exe": {
              "excludes": ["OpenGL.GL", "Numeric", "copyreg", "itertools.imap", "numpy", "pkg_resources", "queue", "winreg", "pygame.SRCALPHA", "pygame.sdlmain_osx"],
              }
          }
      )

Итак, если у вас есть похожие проблемы, просто поместите эти «отсутствующие» модули в эту строку «исключает».

2-я часть:

После того, как мне удалось создать исполняемый файл, у меня возникла следующая проблема: " Приложение запросило среду выполнения, чтобы завершить его необычным способом. Пожалуйста, свяжитесь с ... " . После нескольких дней поисков и размышлений о том, как решить эту проблему, я нашел способ сделать это. Я не мог поверить, что проблема была настолько абсурдной. Проблема была в моем коде с определением шрифта:

font1 = pygame.font.SysFont(None, 13)

После изменения " Нет " на имя какого-либо системного шрифта (например, "Arial" (должно быть строкой)) и компиляции я не мог поверить, что мой файл .exe работает!

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

Конечно, вы можете использовать свой собственный шрифт, но вы должны указать его путь и определить его в своей программе.

Так что для всех вас, кто испытывает эти проблемы, попробуйте эти шаги, и я надеюсь, что у вас все получится. Я действительно надеюсь, что это поможет вам, потому что я потерял дни и недели, пытаясь решить эти проблемы. Я даже пытался создать свой файл .exe со всеми версиями python и pygame, со многими другими сборщиками .exe и сценариями установки, но безуспешно. Помимо этих проблем, у меня было много других проблем, но я нашел ответы на них на stackoverflow.com.

Я счастлив, что нашел способ решить эту проблему и помочь вам, если вы столкнулись с такими же.

Маленькие советы (что я тоже сделал):

1-й: обновите библиотеку Microsoft Visual C ++ до последней версии.

2-й: если у вас есть изображения или шрифты, похожие на те, которые нужны вашей исполняемой программе, включите их в папку dist (где был создан ваш файл .exe).

3-й: когда вы создаете свой файл .exe, включите все необходимые файлы в папку, где находится ваш скрипт setup.py (все файлы и каталоги, которые использует ваш основной скрипт).

Используется Python 2.7 x64 , pygame и py2exe .

1 голос
/ 26 июля 2013

Была такая же проблема, решена, поместив файл шрифта Pygame по умолчанию в папку дистрибутива Он использовался в проекте, и я предполагал, что он будет включен в сборку автоматически.

...