1

少し前にプログラミングを始めました。Python、Lua、Ruby を少し使っています。py2exe、py2app、または py2deb を使用して、3 つのスクリプトすべてを 1 つの実行可能ファイルにコンパイルすることは可能ですか?

そうでない場合は、ゲーム開発にどれを使用する必要がありますか。また、勉強できるリソースがあれば、もっと勉強したいと思います。

4

2 に答える 2

1

それらすべてを 1 つの実行可能ファイルに結合するのは困難です。それらを 1 つのアプリケーションに組み合わせる、それほど難しくありません。

例として py2app を見てみましょう。OS X アプリケーション バンドル (ファイルでいっぱいのディレクトリ) を構築します。サブディレクトリには、カスタム標準ライブラリを備えた完全な Python インタープリターがありFrameworksます。また、アプリケーションの Python ソース コード (および/または .pyc バイトコード) とすべてのデータ ファイルはResourcesサブディレクトリにあります。最後に、MacOS サブディレクトリにはpython、カスタム標準ライブラリで Python を実行する標準スタブ実行可能ファイルと、カスタム標準ライブラリで Python を実行し、メイン スクリプトを実行するアプリの名前を持つ別のスタブ実行可能ファイルの2 つがあります。 .

Ruby と Lua に同じツールがあるとします。

Frameworks各フレームワークをディレクトリに配置し、3 つの言語すべてのすべてのソース コードとすべてのデータ ファイルをResourcesディレクトリに配置し、3 つのスタブ実行可能ファイルすべてをディレクトリに配置するアプリケーション バンドルを非常に簡単に構築できますMacOS。どちらのスクリプトがメイン プログラムであっても、そのスクリプトのスタブ実行可能ファイルだけを保持します。

スクリプトが python、lua、および ruby​​ スタブ実行可能ファイルを見つけて他のスクリプトを起動する方法を知っている限り (たとえば、メイン スクリプトの開始時に環境内の PATH を変更することで実行できます)、すべてが機能します。

さらに簡単な解決策があります: py2app(and ruby2appand lua2app) 各アプリケーションを個別に作成し、完全なアプリケーションをバンドル内 (たとえば、Applicationsディレクトリの下のLibraryディレクトリ) にパッケージ化して、そのように実行します。欠点は、20 個の異なる Python スクリプトがある場合、最終的に 20 個の完全な Python インストールが必要になり、かなり大きなダウンロードになることです。

ただし、その中間に行くこともできます。つまり、すべての Python アプリを 1 つのバンドルにマージし、すべての Ruby アプリを別のバンドルにマージし、すべての Lua アプリを別のバンドルにマージします。

実際にこれを行う際の問題は、実際には Ruby と Lua 用の同一のツールがないことです。さまざまな構造を構築するさまざまなツールがあります。また、Windows 用の同一のツールはありません (py2exe非常に異なる形状の構造を構築し、非常に異なる構成設定を使用します)。したがって、N 個の言語と M 個のプラットフォームがある場合、N*M 個の異なる構造のデカルト積を (最大で) 理解する必要があります。

そして、あなたは本当にすべての個別のツールが必要です. py2appRuby または Lua コード、または Windows コードでは使用できません。これは、Python モジュール (Python C 拡張モジュールを含む) を理解する必要があり、Mach-O レベルと Python API レベルで理解する必要があるためです。依存関係を把握して適切なファイルを取得し、それらをバンドルに配置する適切な場所を把握して、インタープリターがそれらを見つけられるようにするなどです。

それでも、それは間違いなく実行可能です。私は 2 つまたは 3 つの異なるスクリプト言語で記述された複数のスクリプトをまとめた 2 つのプロジェクトに取り組んできました。

于 2013-11-08T00:38:13.633 に答える