0

私はpygameを学ぼうとしていますが、完成したゲーム(python 2.6とpygameがインストールされていると仮定)を作成する最良の方法は、それを実行するapplescriptを用意し、アプリバンドルとして(pythonファイルなどを含む)保存することです。バンドル)。これが私が持っているものです:

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コードは相対パスを使用して画像フォルダーにアクセスするため、cdコマンドが必要です。filesディレクトリは、Pythonファイルと、「images」などのサブディレクトリがある場所です。このようなアプリファイルがあると、デフォルトで何でも開くことができる1つの.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 / local / binだけを検索するのではなく、パスを検索します。~/.bash_profilePythonの$PATHを設定およびエクスポートするために呼び出す必要があります(.bash_profilePythonをインストールすると自動的に追加されます)。

問題は、スクリプトアプリバンドルが実行中に「応答しない」ことですが、Pythonアプリは問題ありません。スクリプトアプリバンドルでPythonを実行し、終了してPythonをそのままにしておくにはどうすればよいですか?そして、pygameモジュールをバンドル内に入れることはできませんか?そのわずか〜9MB。

4

1 に答える 1

1

pyinstallerは pygame をバンドルできるようにする必要があります (SVN バージョンを使用してください: リリースされたものはかなり古くなっています)。また、コードで相対ディレクトリをより適切に見つけるようにすることをお勧めします。

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

など、そのぎこちない cd を避けるために;-)。

于 2009-09-07T06:38:48.140 に答える