Python ファイル拡張子 .pyc .pyd .pyo は何の略ですか? 質問する

Python ファイル拡張子 .pyc .pyd .pyo は何の略ですか? 質問する

これらの Python ファイル拡張子は何を意味するのでしょうか?

  • .pyc
  • .pyd
  • .pyo

それらの違いは何ですか? また、それらは *.py ファイルからどのように生成されるのですか?

ベストアンサー1

  1. .py: これは通常、記述した入力ソース コードです。
  2. .pyc: これはコンパイルされたバイトコードです。モジュールをインポートすると、Python は*.pycバイトコードを含むファイルを構築し、後で再度インポートするときに簡単に (そして速く) できるようにします。
  3. .pyo*.pyc: これは、最適化 ( ) フラグを使用して作成されたファイルに Python 3.5 より前に使用されていたファイル形式です-O。(下記の注記を参照)
  4. .pyd: これは基本的に Windows の dll ファイルです。http://docs.python.org/faq/windows.html#pyd ファイルは dll と同じか

.pycまた、 vsに関するさらなる議論については.pyo、以下をご覧ください。http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html(重要な部分を以下にコピーしました)

  • Python インタープリタが -O フラグ付きで呼び出されると、最適化されたコードが生成され、「.pyo」ファイルに保存されます。現在のところ、オプティマイザはあまり役に立ちません。アサート ステートメントを削除するだけです。-O を使用すると、すべてのバイトコードが最適化されます。.pyc ファイルは無視され、.py ファイルは最適化されたバイトコードにコンパイルされます。
  • Python インタープリタ (-OO) に 2 つの -O フラグを渡すと、バイトコード コンパイラが最適化を実行しますが、まれにプログラムが誤動作する可能性があります。現在、__doc__バイトコードから文字列のみが削除され、よりコンパクトな '.pyo' ファイルが生成されます。一部のプログラムはこれらのファイルの存在を前提としているため、何をしているのかわかっている場合にのみこのオプションを使用してください。
  • プログラムは、'.pyc' ファイルまたは '.pyo' ファイルから読み取られる場合と '.py' ファイルから読み取られる場合で実行速度が変わることはありません。'.pyc' ファイルまたは '.pyo' ファイルの方が速いのは、ロードされる速度だけです。
  • スクリプトをコマンド ラインで名前を指定して実行する場合、スクリプトのバイトコードは '.pyc' または '.pyo' ファイルに書き込まれることはありません。したがって、スクリプトのコードのほとんどをモジュールに移動し、そのモジュールをインポートする小さなブートストラップ スクリプトを用意することで、スクリプトの起動時間を短縮できます。コマンド ラインで '.pyc' または '.pyo' ファイルを直接指定することもできます。

注記:

2015年9月15日、Python 3.5 リリースPEP-488 を実装し、.pyoファイルを削除しました。つまり、.pycファイルは最適化されていないバイトコードと最適化されたバイトコードの両方を表します。

おすすめ記事