Python を機械語にコンパイルすることは可能ですか?

@Greg Hewgillが言っているように、これが常に可能であるとは限らない正当な理由があります。ただし、特定の種類のコード (非常にアルゴリズム的なコードなど) は、「実際の」マシン コードに変換できます。

いくつかのオプションがあります:

  • マシンコードを動的に発行する Psyco を使用します。ただし、変換するメソッド/関数は慎重に選択する必要があります。
  • Python に似た Cython を使用 Python C 拡張機能にコンパイルされた言語
  • RPython からのトランスレータを持つ PyPy を使用します (制限付きサブセット) Python の最も「動的な」機能の一部をサポートしていない Python の一部) を C または LLVM に変換します。
    • PyPy はまだ非常に実験的です
    • すべての拡張機能が存在するわけではありません

その後、既存のパッケージ (freeze、Py2exe、PyInstaller) のいずれかを使用して、すべてを 1 つのバイナリに入れることができます。

全体として、あなたの質問に対する一般的な答えはありません。パフォーマンスが重要な Python コードがある場合は、できるだけ多くの組み込み機能を使用するようにしてください (または、「Python コードを高速化するにはどうすればよいか」という質問をしてください)。それでも問題が解決しない場合は、コードを特定して C (または Cython) に移植し、拡張機能を使用してみてください。


ShedSkin Python-to-C++ コンパイラを試してみてください。ただし、完璧にはほど遠いものです。スピードアップだけが必要な場合は、Psyco - Python JIT もあります。しかし、これは努力する価値がありません。コードの速度が重要な部分については、C/C++ 拡張機能として記述するのが最善の解決策です。


py2c (https://github.com/pradyun/Py2C) は、python コードを c/c++ に変換できます。私は py2c の単独開発者です。