py_compile
Python ソースを指定してバイトコードを生成できる stdlib モジュールです。必要になることはめったにありません。
Python 3 ソース コードをコンパイルするには、コマンドラインから使用する場合、Python 2.7 のバージョンではなく、含まれている py_compile バージョンを使用する必要があります。
$ python3 -mpy_compile your_script.py
pyc ファイルが保存されるデフォルトの場所を変更するには、関数cfile
のパラメーターを使用できます。py_compile.compile()
バイト コードにより、スクリプトの実行速度は向上しますか?
かもしれません(ごくわずかですが)。Python コンパイラはあまり処理を行わないため高速です。
人間が読める形式でバイトコードがどのように見えるかの例を次に示します。
>>> def f(o):
... with o:
... pass
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_FAST 0 (o)
3 SETUP_WITH 5 (to 11)
6 POP_TOP
3 7 POP_BLOCK
8 LOAD_CONST 0 (None)
>> 11 WITH_CLEANUP
12 END_FINALLY
13 LOAD_CONST 0 (None)
16 RETURN_VALUE
すべての重労働は、実行時にバイトコードを解釈する Python インタープリターに任されています。
それとも配布専用ですか?
ドキュメントはユース ケースを提供します。カーテン ユーザーのみが書き込み可能な Python モジュールを含む共有ディレクトリです。ディスクへのバイトコードのキャッシュを無効にできるため、対応するpycファイルなしで読み取り専用の場所に保存されているpyファイルを使用できます。
なぜほとんど使用されないのですか?
通常、pyc ファイルはビルド/インストール プロセスによって作成されます。pyc ファイルがない場合は、モジュールをインポートするときにオンザフライで作成できます。
$ python -c 'import some_module'