.PYC

PYC ファイル

Compiled Python Bytecode File
質問する
クイック回答

.pyc ファイルは、CPython が起動を高速化するために自動的にキャッシュするコンパイル済みの Python バイトコードです。通常、手動で開いたり操作したりする必要はありません。実行するには、対応する Python バージョンを使用してください。.pyc からソースコードを復元するには、decompyle3 や pycdc などのデコンパイラを使用しますが、結果は近似的なものであり、新しい Python バージョンでは失敗する可能性があります。

開発元: Python Software Foundation (CPython) カテゴリ: 開発用ファイル オープンスタンダード MIME: application/x-python-code
対応OS Windows macOS Linux
関連: .DO · .MD · .HEX · .XSD

このページの内容

19k+ 個の拡張子を索引済み
最終確認日:Jun 30, 2026

ファイルの種類がわかりませんか?

ファイルを識別ツールにドロップしてください。最初の数バイトを読み取って形式を特定します。

ファイルを識別する

PYC ファイル形式とは?

.pyc ファイルは、Python プログラミング言語で使用されます。.pyc ファイルは、Python ソースで書かれたプログラムの コンパイル済みバイトコード を含む実行可能ファイルです。バイトコードは、起動のたびに元のソースを再解析することなくインタープリタがプログラムを実行するための命令セットであり、インポートや起動時間を短縮します。

.pyc ファイルは、関連する .py ソースファイルに付随します。Python は .py ファイルをコンパイルして結果を .pyc ファイルに保存し、それを使用してプログラムを直接実行できます。Python 3.2 以降、これらのキャッシュファイルはソースと同じ場所にある __pycache__ サブディレクトリに配置され、ファイル名にはインタープリタのバージョンが埋め込まれます(例:script.cpython-312.pyc)。

各 .pyc ファイルは 16 バイトのヘッダーで始まります。最初の 2 バイトはバージョン固有の「マジックナンバー」であり、CPython のリリースごとに変わります。続いてバイト 2-3 に 0x0D 0x0A (CR LF) が配置されます。残りのヘッダーバイトには、ソースファイルのタイムスタンプとサイズ(デフォルト)、または決定論的で再現可能なビルドのためのソースファイルハッシュ(Python 3.7 の PEP 552 で導入されたスキーム)が保持されます。ヘッダーの後には、Python の組み込み dis モジュールで検査可能なマーシャル化されたコードオブジェクトが含まれています。

.pyc バイトコードは特定の CPython バージョンに紐付けられています。例えば Python 3.11 でコンパイルされたファイルは Python 3.12 ではロードされません。古い .pyo 最適化バイトコード形式は Python 3.5 で削除されました。現在は最適化ビルドを行うと、代わりに .opt-1.pyc や .opt-2.pyc ファイルが生成されます。.pyc を読み取り可能なソースにデコンパイルするには、uncompyle6、decompyle3、pycdc (Decompyle++) などのツールが一般的に使用されますが、互換性は Python バージョンによって異なります。Windows では、コンパイルされた拡張モジュールは関連する .pyd 形式を使用します。

セキュリティと安全性

リスク: MEDIUM

.pyc は Python インタープリタが「実行」するバイトコードであるため、悪意のある .pyc はスクリプトと同様に任意のコードを実行できます。信頼できないソースからの .pyc は決して実行しないでください。また、マルウェアを隠す手法(コンパイル済みバイトコードのみを配布する)としても一般的です。逆に、自身のコードを .pyc として配布しても保護は非常に弱いです。デコンパイルが可能ですし、少なくとも同梱の «dis» モジュールで逆アセンブルできるため、ソースを秘密にするための真の方法ではありません。__pycache__ や .pyc ファイルの削除は安全です。Python が .py ソースから自動的に再生成します。

形式の詳細

概要
正式名称Compiled Python Bytecode File
開発元Python Software Foundation (CPython)登場時期 Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
MIME タイプapplication/x-python-code
タイプバイナリ CPython バイトコード(バージョンヘッダー付きのマーシャル化されたコードオブジェクト)
標準規格オープン・ロイヤリティフリー

PYC ファイルを開くプログラム

Windows3 apps
Python (run it) オープンソース 「一致する」 Python バージョンで実行してください:«python module.pyc»。インタープリタはバイトコードを直接実行しますが、バージョンはコンパイル時と一致している必要があります。
decompyle3 / uncompyle6 (decompile) オープンソース ソースの復元:«pip install decompyle3» を実行してから «decompyle3 file.pyc > file.py»。Python 3.8 頃まで最適に動作しますが、コメントや書式は失われます。
pycdc (Decompyle++) オープンソース uncompyle6 が失敗する新しい Python (3.9+) の場合:pycdc をビルドして «pycdc file.pyc» を実行します。ベストエフォート型であり、最新バージョンでの精度には限りがあります。
macOS2 apps
Python (run it) オープンソース 「一致する」 Python バージョンで実行してください:«python module.pyc»。インタープリタはバイトコードを直接実行しますが、バージョンはコンパイル時と一致している必要があります。
uncompyle6 / decompyle3 (decompile) オープンソース pip 経由でインストールし、.py にデコンパイルします。Windows 版と同じバージョンの注意点があります。
Linux2 apps
Python (run it) オープンソース 「一致する」 Python バージョンで実行してください:«python module.pyc»。インタープリタはバイトコードを直接実行しますが、バージョンはコンパイル時と一致している必要があります。
decompyle3 / pycdc (decompile) オープンソース pip で decompyle3 をインストール(または 3.9+ 用に pycdc をビルド)し、.pyc を .py にデコンパイルします。

技術的詳細

詳細仕様
開発元Python Software Foundation (CPython)
MIME タイプapplication/x-python-code
ファイル構造バイナリ - バージョン管理された 16 バイトのヘッダーと、それに続くマーシャル化された Python コードオブジェクト
マジックナンバーバイト 0-1: バージョン固有の 2 バイト値(CPython リリースごとに異なる)、バイト 2-3: 常に 0x0D 0x0A (CR LF)
ヘッダーレイアウト32ビットのマジック、32ビットのビットフィールドフラグ、続いて 32ビットの mtime + 32ビットのソースサイズ(タイムスタンプモード)または 32ビットのソースハッシュ(PEP 552 ハッシュモード)
キャッシュディレクトリPython 3.2 以降は __pycache__/ に保存。ファイル名にはインタープリタのバージョンが含まれる(例:script.cpython-312.pyc)
バージョンの互換性CPython の各バージョンは固有のマジックナンバーを書き込む。Python 3.11 の .pyc は 3.12 ではロードされず、その逆も同様
プラットフォームの移植性同じ CPython バージョン内であればプラットフォームに依存しない。同じ .pyc が Windows、macOS、Linux 上の一致するインタープリタで動作する
最適化バリアントpython -O および python -OO は .opt-1.pyc および .opt-2.pyc を生成(アサートやドキュメント文字列を削除)。.pyo 拡張子は Python 3.5 で廃止
自動生成の制御CPython はインポート時に .pyc ファイルを自動的に書き込む。-B フラグまたは PYTHONDONTWRITEBYTECODE=1 環境変数で抑制可能
逆アセンブル / デコンパイルPython 組み込みの dis モジュールがバイトコードを逆アセンブルする。サードパーティツールの uncompyle6、decompyle3、pycdc (Decompyle++) はソースの再構築を試みる
内部シリアル化形式コードオブジェクトは marshal モジュールでシリアル化される。これは pickle とは異なるコンパクトなバイナリ形式であり、安定した公開 API の一部ではない
ハッシュベースのビルドPEP 552 (Python 3.7+) でハッシュベースの .pyc ファイルが導入。再現可能なビルドのために、ヘッダーに mtime ではなくソースファイルのハッシュを保存する
リリース日Early CPython (1990s); current header layout (PEP 552 hash-based, deterministic) since Python 3.7, 2018
オープンスタンダードはい · ロイヤリティフリー
仕様書docs.python.org

PYC の変換

コミュニティ Q&A

ユーザーからの質問
質問する
PYC ファイルを扱うユーザーからヘルプを得られます。OSやソフトウェアのバージョンなど、具体的に記載してください。
アカウント不要 ・ 通常1日以内に回答されます

まだ質問はありません。PYC ファイルについて最初の質問をしてみましょう。

よくある質問

.pyc ファイルとは何ですか?削除しても大丈夫ですか?
Python が起動を速めるためにキャッシュするコンパイル済みのバイトコードです。 .pyc ファイルや __pycache__ フォルダは安全に削除できます。次に実行したときに、Python が .py ソースからそれらを再作成します。
.pyc を .py ソースに戻すにはどうすればよいですか?
デコンパイルすることで可能です。Python 3.8 までは decompyle3 や uncompyle6 を使用し(«decompyle3 file.pyc > file.py»)、Python 3.9 以降は pycdc を使用します。結果は近似的なもので、コメントや正確なフォーマットは失われます。また、最新の Python バージョンでは失敗することがあります。
.pyc ファイルが実行できないのはなぜですか?
ほとんどの場合、バージョンの不一致が原因です。.pyc はそれを作成した正確な CPython バージョン(マジックナンバー)に紐付けられています。同じバージョンで実行するか、元の .py を入手して Python に再コンパイルさせてください。
.py ではなく .pyc を配布することでソースコードを隠せますか?
限定的な効果しかありません。.pyc は読み取り可能な Python にデコンパイル可能ですし、組み込みの «dis» モジュールで常に逆アセンブルできます。カジュアルな閲覧は防げますが、真の保護にはなりません。
__pycache__ フォルダの中身は何ですか?
«module.cpython-311.pyc» のように命名されたキャッシュ済みの .pyc ファイルです。インポートされたモジュールごとに 1 つ作成され、Python バージョンのタグが付いています。これは自動的なパフォーマンスキャッシュであり、削除しても安全です。
.py ファイルなしで .pyc を実行できますか?
はい、対応する Python バージョンがあれば可能です(«python module.pyc»)。.py は編集時、または Python がキャッシュを再生成する場合にのみ必要です。

参考文献

1Python docs - dis (bytecode disassembler)docs.python.org
2PEP 552 - Deterministic pycspeps.python.org

さらに探索

データベース全体から

今週のトップ拡張子

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.BINCD/DVD Disc Image (BIN/CUE)
5.RPMSGRestricted Permission Message
6.MDMarkdown Document
7.NOMEDIAAndroid No-Media Marker File
8.PRO6XProPresenter 6 Bundle File
9.EXEWindows Executable (Portable Executable)
10.PRDXSoftMaker Presentations Document

関連する拡張子

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

無料ファイルツール

ブラウザで動作するファイル識別および画像変換ツール。すべてお使いのデバイス上で実行されます。

ツールボックスを開く

ファイル拡張子を A-Z で閲覧