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