これらのpythonファイル拡張子とはどういう意味ですか?
それらの違いは何ですか?また* .pyファイルからどのように生成されますか?
.py
:これは通常あなたが書いた入力ソースコードです。.pyc
:これはコンパイルされたバイトコードです。モジュールをインポートすると、pythonはバイトコードを含む*.pyc
ファイルを作成して、後で簡単に(そしてより速く)インポートすることを可能にします。.pyo
:これは最適化(*.pyc
)がオンの間に作成された-O
ファイルです。.pyd
:これは基本的にwindows dllファイルです。 http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dllまた、.pyc
と.pyo
に関するさらに詳しい議論については、 http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html をご覧ください。
- Pythonインタープリタが-Oフラグを付けて呼び出されると、最適化されたコードが生成され、「。pyo」ファイルに保存されます。オプティマイザは現在あまり役に立ちません。 assert文を削除するだけです。 -Oを使用すると、すべてのバイトコードが最適化されます。 .pycファイルは無視され、.pyファイルは最適化されたバイトコードにコンパイルされます。
- Pythonインタープリタ(-OO)に2つの-Oフラグを渡すと、バイトコードコンパイラは最適化を実行しますが、まれにプログラムが誤動作することがあります。現時点ではバイトコードから
__doc__
文字列のみが削除されているため、よりコンパクトな「.pyo」ファイルが得られます。いくつかのプログラムはこれらを利用可能にすることに頼っているかもしれないので、あなたが何をしているのか知っている場合にのみこのオプションを使うべきです。- プログラムが「.pyc」または「.pyo」ファイルから読み取られると、「。py」ファイルから読み取られる場合よりも速く実行されることはありません。 「.pyc」または「.pyo」ファイルのほうが速いのは、ファイルがロードされる速度だけです。
- コマンドラインで名前を指定してスクリプトが実行されると、そのスクリプトのバイトコードが「.pyc」ファイルまたは「.pyo」ファイルに書き込まれることはありません。したがって、スクリプトの起動時間は、そのコードの大部分をモジュールに移動し、そのモジュールをインポートするための小さなブートストラップスクリプトを用意することで短縮できます。コマンドラインで直接「.pyc」または「.pyo」ファイルに名前を付けることもできます。
その他のPythonファイル拡張子のリスト(ほとんどは稀で非公式)は http://dcjtech.info/topic/python-file-extensions/ にあります。