web-dev-qa-db-ja.com

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

これらのpythonファイル拡張子とはどういう意味ですか?

  • .pyc
  • .pyd
  • .pyo

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

387
Yanki Twizzy
  1. .py:これは通常あなたが書いた入力ソースコードです。
  2. .pyc:これはコンパイルされたバイトコードです。モジュールをインポートすると、pythonはバイトコードを含む*.pycファイルを作成して、後で簡単に(そしてより速く)インポートすることを可能にします。
  3. .pyo:これは最適化(*.pyc)がオンの間に作成された-Oファイルです。
  4. .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」ファイルに名前を付けることもできます。
427
Bill Lynch
  • .py - 通常のスクリプト
  • .py3 - (めったに使用されない)Python3スクリプト。 Python 3スクリプトは通常、 "。py 3"ではなく "。py"で終わりますが、私はそれを数回見ました
  • .pyc - コンパイル済みスクリプト(バイトコード)
  • .pyo - 最適化されたpycファイル(Python 3.5以降、Pythonはpyoとpycではなくpycのみを使用します)
  • .pyw - コンソールなしでウィンドウモードで動作するPythonスクリプト。 pythonw.exeで実行した
  • .pyx - C/C++に変換されるCythonのソースコード
  • .pyd - Windows DLLとして作られたPythonスクリプト
  • .pxd - C/C++ヘッダーと同等のCythonスクリプト
  • .pxi - MyPyスタブ
  • .pyi - スタブファイル( PEP 484
  • .pyz - Pythonスクリプトアーカイブ( PEP 441 );これは、標準のPythonスクリプトヘッダの後にバイナリ形式で圧縮されたPythonスクリプト(Zip)を含むスクリプトです。
  • .pywz - MS-Windows用のPythonスクリプトアーカイブ( PEP 441 );これは、標準のPythonスクリプトヘッダの後にバイナリ形式で圧縮されたPythonスクリプト(Zip)を含むスクリプトです。
  • .py [cod] - "。gitignore"のワイルドカード表記。ファイルは "。pyc"、 "。pyo"、または "。pyd"のいずれかです。

その他のPythonファイル拡張子のリスト(ほとんどは稀で非公式)は http://dcjtech.info/topic/python-file-extensions/ にあります。

207