[解決済み] Pythonのファイル拡張子、.pyc .pyd .pyo は何の略ですか?
2022-03-21 09:12:28
質問
Pythonのこれらのファイル拡張子は何を意味するのですか?
- .pyc
- .pyd
- .pyo
両者の違いや、*.pyファイルからの生成方法について教えてください。
どのように解決するのですか?
-
.py
: これは通常、あなたが書いた入力ソースコードです。 -
.pyc
: これはコンパイルされたバイトコードです。モジュールをインポートすると、pythonはコンパイル時に*.pyc
ファイルにはバイトコードが含まれており、後で再びインポートするのが簡単に (そして速く) なるようになっています。 -
.pyo
: これは Python 3.5 より前に使われていたファイルフォーマットで*.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文を削除するだけです。.pyc ファイルは無視され、.py ファイルは最適化されたバイトコードにコンパイルされます。
-
Python インタープリタに 2 つの -O フラグを渡すと (-OO) 、バイトコードコンパイラが最適化を実行し、まれにプログラムが誤動作する可能性があります。現在では
__doc__
文字列がバイトコードから削除され、よりコンパクトな '.pyo' ファイルが生成されます。プログラムによっては、これらの文字列が利用可能であることに依存している場合があるので、 このオプションは自分が何をしているかを知っている場合のみ使用するようにしてください。 - .pyc' や '.pyo' ファイルを読んでも、'.py' ファイルを読んでも、プログラムの実行速度が速くなることはありません。
- コマンドラインでスクリプト名を指定して実行する場合、そのスクリプトのバイトコードが'.pyc' や '.pyo' ファイルに書き込まれることはありません。したがって、スクリプトのコードの大部分をモジュールに移動し、そのモジュールをインポートする小さなブートストラップスクリプトを持つことによって、スクリプトの起動時間を短縮することができる。また、コマンドラインから直接'.pyc' や '.pyo' ファイルに名前を付けることも可能である。
注
2015-09-15に
Python 3.5リリース
を実装し、PEP-488 を廃止しました。
.pyo
ファイルです。
つまり
.pyc
ファイルは、最適化されていないバイトコードと最適化されたバイトコードの両方を表します。
関連
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] Pythonが解釈される場合、.pycファイルとは何ですか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonによるLeNetネットワークモデルの学習と予測
-
Python LeNetネットワークの説明とpytorchでの実装
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】インポートエラー。モジュール名 urllib2 がない
-
[解決済み] 'int'オブジェクトに'__getitem__'属性がない。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない