471

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

  • .pyc
  • .pyd
  • .pyo

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

4

2 に答える 2

523
  1. .py:これは通常、あなたが書いた入力ソースコードです。
  2. .pyc:これはコンパイルされたバイトコードです。モジュールをインポートすると、Pythonは*.pycバイトコードを含むファイルを作成して、後で簡単に(そしてより速く)インポートできるようにします。
  3. .pyo:これは、*.pyc最適化(-O)フラグを使用して作成されたファイルに対してPython3.5より前に使用されていたファイル形式でした。(以下の注を参照)
  4. .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ファイルが最適化されていないバイトコードと最適化されたバイトコードの両方を表すことを意味します。

于 2012-01-11T15:57:58.393 に答える
251
  • .py-通常のスクリプト
  • .py3-(めったに使用されない)Python3スクリプト。Python3スクリプトは通常、「。py3」ではなく「.py」で終わりますが、私はそれを数回見ました
  • .pyc-コンパイルされたスクリプト(バイトコード)
  • .pyo-最適化されたpycファイル(Python3.5以降、Pythonはpyoとpycではなくpycのみを使用します)
  • .pyw-コンソールなしでウィンドウモードで実行するPythonスクリプト。pythonw.exeで実行
  • .pyx -C /C++に変換されるCythonsrc
  • .pyd -WindowsDLLとして作成された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」のいずれかであることを意味します。
  • .pth-パス構成ファイル。その内容は、に追加される追加アイテム(1行に1つ)sys.pathです。siteモジュールを参照してください。

追加のPythonファイル拡張子(ほとんどの場合、まれで非公式)のより大きなリストは、http://dcjtech.info/topic/python-file-extensions/にあります。

于 2013-08-03T12:12:11.880 に答える