7

私は常に、スクリプト言語から「実際のexe」を作成するというこの夢を持っていました。PythonとRubyのDLRベースの実装が利用可能になったことで、これは現実に近づいていますか?

「実際のアプリケーション」を作成したい:

  • Windowsフォームアプリ
  • コンソールアプリ
  • Windowsサービス

そして、配布の単位をコンパイルされたexeファイルにします。

これは可能ですか?または、MSは.NETに基づいてスクリプトファイルインタープリターを作成したばかりですか?

これを行っている場合、アプリケーション/プロジェクトをどのように構成していますか?C#とDLRコードのハイブリッドを使用していますか?

4

3 に答える 3

4

IronPythonまたはIronRubyプロジェクトは、dllまたは実行可能ファイルに問題なくコンパイルでき、それらを実行する人が関連する.Netフレームワークと依存関係をインストールする必要があるという条件で、あらゆる点で「実際の」実行可能ファイルになります(依存関係は代わりにデフォルトで同じディレクトリですが、フレームワークをインストールする必要があります)。Visual Studioとの統合はまだありませんが、IronPythonStudioのようなプロジェクトは無料のVSシェルを使用して効果を上げています。VS 2010でc#ダイナミックの依存関係としてDLRが存在するということは、Iron *グループのVSとの統合がより簡単な目標になり、優先度が高くなることを意味します。

結果は決して解釈されず(CILは実行時にまたは必要に応じてngenを介してマシンコードに組み込まれます)、DLRの特定の側面は、一部のアクションがレイトバインディングと同様の方法で延期されることを意味しますが、いくつかの高度なキャッシングメカニズムを使用するとより強力かつ決定的になりますこれを素朴な通訳者と比較して比較的速くすることができます。

従来解釈されてきたスクリプト言語の多くは、独自のVMベースのコンパイル戦略を作成するか、既存の戦略(JVM、.Net CLR、LLVMなどのオープンなもの)を活用しています。これにより、多くの一般的なケースでパフォーマンスが大幅に向上します。

Iron *言語の場合、基礎としてのMS CLRの利点は、最も一般的なOSファミリのインストールの大部分で結果として得られる実行可能ファイルが「JustWork」であるということです。多くのオペレーティングシステムでシェルを介して直接クリック/または「実行」してjarファイルを「実行可能」にしないJavaとは対照的です。これとは逆に、プラットフォームのサポートがより広いが、必然的にOS統合がより多様になるJVMまたはLLVMベースのソリューションと比較して、相互運用性が低下することです。

于 2009-06-18T18:51:33.693 に答える
1

Py2Exeを使用して、通常のPythonからexeを作成できます。ただし、VisualStudioまたはSharpDevelopを使用してIronPythonでexeを作成することを妨げるものは何もないはずです。

于 2009-06-18T17:47:09.757 に答える
-1

iron *の質問とは直接関係ありませんが、Pythonスクリプトのバイナリが必要な人にとっては興味深いかもしれません:pyinstaller

Windows(32ビットおよび64ビット)、Linux(32ビットおよび64ビット)、およびMac OS X(32ビットのみ)で動作します

1.5から2.7までのPythonの任意のバージョンで動作します

于 2010-11-25T21:01:40.380 に答える