Для начала нужно зайти на сайт cx-freeze.sourceforge.net и скачать версию модуля cx_Freeze для своей операционной системы, также для пайтона. У меня Windows и Panda 1.7.2 соответственно пайтон 2.6, я скачал: Windows Installer (Python 2.6)
Установка cx_Freeze проста, инсталятор определит директорию где расположен пайтон автоматически, вам нужно убедиться что это директория панды, если это не так то укажите папку пайтона в панде.
И так чтобы не запутаться создадим отдельную папку и назовём её “Game”, в названии и адресе папки не должно быть кириллицы и пробелов во избежание дальнейших проблем. В папке “Game” создадим файл “Panda.py” который мы будем упаковывать с помочью cx_Freeze, я выразился словом упаковывать, т.к. это не является компиляцией py файла в код, так же есть модуль py2exe который тоже упаковывает а не компилирует. Далее в папке “Game” надо создать папку “model” и скопировать туда модель из папки models\panda-model.egg.pz, далее создайте в папке “model” папку "maps" и скопируйте в неё текстуру из models\maps\panda-model.jpg Откроем файл “Panda.py” и создадим код для примера:
Code
import direct.directbase.DirectStart from direct.actor import Actor
Пришло время создать в паке “Game” файл с конфигурацией для упаковки. Назовём его “setup.py” в нем добавим код:
Code
from cx_Freeze import setup, Executable
setup( name = "Panda3D", version = "0.1", description = "Panda3D", executables = [Executable("Panda.py")])
Пояснения: В данном файле из cx_Freeze импортируются необходимые классы. Подробней можно прочесть в документации. Самое необходимое в строке “executables = [Executable("Panda.py")])” где вносится имя файла(либо адрес и имя) который надо упаковать. Также в setup можно указать иконку и т.д. В документации имеется дополнительная информация.
Теперь в папке "Game" создадим файл “build.bat” кликните по нему правой кнопкой мыши и в меню действий выберите изменить, после этого он откроется в текстовом блокноте и добавьте в него строчки:
Пояснения: У вас директория где установлена панда может быть иначе, исправьте “C:\Panda3D-1.7.2” на ту в которой у вас находиться панда. “pause” для того чтоб не закрывалась консоль в ней будет отображаться процесс упаковки и ошибки.
Теперь можно запускать “build.bat”, Если упаковка прошла успешно то появится в папке “Game” папка “build” а в ней папка “exe.win32-2.6” имя может отличатся. В ней будет много файлов, среди которых будет “Panda.exe“ но пока рано его запускать, надо сделать копию папки bin из папки панды, далее открыть копию упорядочить файлы по типу и удалить все файлы с расширением “exe” и те что остались скопировать в папку “exe.win32-2.6” и согласиться на замены. Так же нужно скопировать в папку “exe.win32-2.6”, папку настроек “etc” из папки панды. Теперь последний шаг надо скопировать папку “model” из “Game” которою мы создавали, в папку “exe.win32-2.6”. Ну… можно запускать.
Заключение: если сжать содержимое папки “exe.win32-2.6” в архив то размер будет всё таки большой. У меня 25 мегабайт, но размер можно уменьшить. Я до копирования содержимого папки “bin” в папке “exe.win32-2.6” оставил только файлы “Panda.exe”, ”library.zip”, ”unicodedata.pyd”. Остальные принадлежали wx и tk они для запуска не нужны. И размер у меня получился 20.7, в папке “bin” также можно найти ненужные файлы, например dll от экспортёров maya, библиотеки DX - libpandadx8.dll не думаю что нужна))) Ну чтоб понять насколько можно сжать сделайте хорошую игру, а пираты покажут как надо удалять и сжимать))) Всё.
Внимание и за особенностей системы uCoz в коде бывают лишнии пробелы.
P.S. у меня получилось сжать этот пример до ~14.5 мб, с 7-Zip.