Упаковка Python Cocos2D в исполняемый файл
Сейчас мы работаем над игрой Cocos2D для Ludum Dare, и у нас возникают проблемы с упаковкой игры в какой-то исполняемый файл.
Мы пытались использовать py2exe, но, похоже, это не работает. Я читал, что py2exe часто вызывает проблемы с библиотеками такого типа, но обычно они работоспособны. Тем не менее, я провел некоторое исследование в течение последних нескольких часов, и я не могу найти решение.
Вот сообщение об ошибке, которое выдает нам при выполнении.exe, по-видимому, он не может импортировать модуль pyglet.resource.
C:\Users\Jon\Documents\GitHubVisualStudio\King-of-the-Dungeon\King of the Dungeon\King of the Dungeon\dist>king_of_the_dungeon.exe
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\pyglet\__init__.py", line 351, in __getattr__
return getattr(self._module, name)
AttributeError: 'NoneType' object has no attribute 'path'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "king_of_the_dungeon.py", line 1, in <module>
File "C:\Python34\lib\site-packages\cocos2d-0.6.3-py3.4.egg\cocos\__init__.py", line 71, in <module>
pyglet.resource.path.append(
File "C:\Python34\lib\site-packages\pyglet\__init__.py", line 357, in __getattr__
__import__(import_name)
ImportError: No module named 'pyglet.resource'
1 ответ
Я только попробовал это сам, и это работает без проблем. Но я использовал cx_freeze. Видите, Py2exe устарел, больше не поддерживается, и в целом вам лучше использовать cx_freeze.
- Скачать cx_freeze
создайте файл setup.py для создания exe:
import cx_Freeze # Change "App" to the name of your python script executables = [cx_Freeze.Executable("App.py")] cx_Freeze.setup( name="Sample Name", version = "1", options={"build_exe": {"packages":["pyglet", "cocos", "pygame"]}}, executables = executables )
открыть cmd / терминал и собрать с помощью; python setup.py build
Я только попробовал это с простой игрой, и это собрало без проблем.