Python プロジェクト用 .gitignore

Python プロジェクトに必須の .gitignore パターン。virtualenv、__pycache__、.pyc ファイル、dist フォルダ、Python 固有のパッケージングアーティファクトを網羅しています。

Language

詳細な説明

Python はバージョン管理にコミットすべきでないファイルをいくつかのカテゴリで生成します。正しい .gitignore でリポジトリの汚染を防ぎ、コンパイル済みバイトコードや仮想環境バイナリの混入を避けましょう。

すべての Python プロジェクトに必要なコアパターン:

  • __pycache__/*.pyc — Python はソースファイルをバイトコード(.pyc)にコンパイルし、__pycache__/ ディレクトリに保存します。これらはプラットフォーム固有であり、import 時に自動再生成されます。**/__pycache__/ パターンでネストされたものも捕捉できます。
  • venv/env/.venv/ — 仮想環境ディレクトリ。Python インタプリタとインストール済みパッケージの完全なコピーを含み、数百メガバイトに達することもあります。共同開発者は pip install -r requirements.txt で再作成します。
  • *.egg-info/dist/setuptoolspip install -e . で作成されるパッケージ配布アーティファクト。ビルド出力であり、ソースコードではありません。
  • .eggs/build/python setup.py build やホイール作成時に使用される追加のパッケージングディレクトリ。
  • *.pyopython -O で生成される最適化バイトコードファイル。
  • .mypy_cache/.pytest_cache/ — 型チェックおよびテストツールのキャッシュ。一時的でマシン固有です。
  • .tox/ — Tox テスト自動化ディレクトリ。分離されたテスト環境を含みます。
  • *.ipynb_checkpoints/ — Jupyter Notebook の自動保存チェックポイント。差分にノイズを生じさせます。

重要: requirements.txtPipfile.lock、または poetry.lock は必ずコミットしてください。これらの lockfile は環境を再現するための設計図です。これがないと、チームメイトが互換性のないパッケージバージョンをインストールする可能性があります。

Django プロジェクトでは db.sqlite3media/staticfiles/ も追加しましょう。データサイエンスの場合は、大きなデータセットファイル(*.csv*.parquet)を無視し、Git LFS で追跡することを検討してください。

ユースケース

データサイエンスチームが Django と scikit-learn の共有プロジェクトを構築する際に、virtualenv、バイトコードキャッシュ、Jupyter チェックポイントを無視してリポジトリをクリーンに保つ必要があります。

試してみる — .gitignore Generator

フルツールを開く