2009-09-07 2 views
0

Я пытаюсь изучить pygame, И я нашел лучший способ, чтобы законченная игра (при условии, что python 2.6 и pygame установлена) должна иметь applescript, который запускает ее, и сохраняется как приложение (с файлами python и т. д. внутри пакета). Вот что у меня есть:Applescript - pygame, приложение bundle

do shell script "cd " & the quoted form of the POSIX path of (path to me) & "Contents/Resources/files\n/usr/local/bin/pythonw creeps.py" 

мне нужна команда кд, так как код Python использует относительный путь, чтобы получить в его папку с изображениями. Каталог файлов - это файлы моих питонов и подкаталоги, такие как «изображения». Я думаю, что файл приложения, подобный этому, намного лучше, чем одиночный .py-файл, который по умолчанию мог открыть что-либо. Как вы думаете, это хороший способ связать скрипт python? Кроме того, смогу ли я просто связать pygame вместе с ним, а не требовать, чтобы его тоже установили? Благодарю.

Кроме того, теперь запущен скрипт и работает python, каждый со своими значками док-станции. Могу ли я сделать так, чтобы скрипт просто выполнялся и завершался, оставив python? Благодарю.

Я изменил сценарий:

do shell script ". ~/.bash_profile\npythonw2.6 " & the quoted form of the POSIX path of (path to me) & "Contents/Resources/files/creeps.py" 

Таким образом, он ищет путь вместо только ищет в/USR/местные/бен. ~/.bash_profile необходимо вызвать для установки и экспорта $ PATH для python (который он автоматически добавляет в .bash_profile при установке python).

Проблема в том, что пакет приложений сценария «не отвечает» во время его запуска, но приложение Python в порядке. Как я могу сделать пакет приложений для скрипта, чтобы получить python, а затем выйти и оставить python там сам? И не мог ли я просто поставить модуль pygame внутри пакета? Его единственный ~ 9 МБ.

ответ

1

pyinstaller должно позволить вам связать pygame (используйте версию SVN: выпущенная версия WAY устарела). Кроме того, я полагаю, у вас есть код найти относительные каталоги более красиво:

import os 
resourcesdir = os.path.join(os.path.dirname(__file__), 'Resources') 

или тому подобное, чтобы избежать этого неуклюжим кд ;-).

+0

спасибо за относительный отзыв, используя это сейчас. Как pyinstaller лучше, чем то, что я уже сделал? – mk12

+0

@ Mk12, вы спросили о том, чтобы связать pygame тоже. –

+0

Я на самом деле закончил использование * py2app *. – mk12

Смежные вопросы