Главная » Статьи » Инструментарий.

Cоздание исполняемого файла.
Для начала нужно зайти на сайт 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

base.disableMouse()
base.camera.setPos(0,-20,2)
pandaActor = Actor.Actor("model/panda-model")
pandaActor.setScale(0.005,0.005,0.005)
pandaActor.reparentTo(render)

run()


Обязательно проверьте код на работоспособность!!!

Пришло время создать в паке “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” кликните по нему правой кнопкой мыши и в меню действий выберите изменить, после этого он откроется в текстовом блокноте и добавьте в него строчки:

Code
C:\Panda3D-1.7.2\python\python.exe setup.py build
pause


Пояснения: У вас директория где установлена панда может быть иначе, исправьте “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.
Категория: Инструментарий. | Добавил: serg-kkz (01.07.2011) | Автор: serg-kkz
Просмотров: 11906 | Комментарии: 1 | Рейтинг: 3.0/6
Всего комментариев: 1
1 deemaa  
0
а полученный экзешник можно будет запускать с параметром? что бы он был доступен в sys.argv как было бы при запуске типа "python main.py 1"

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Онлайн всего: 2
Гостей: 2
Пользователей: 0