.gitignore for Python

Python bytecode, virtual environments, distribution artifacts, and test caches.

Quick presets

Selected (1)
Python
Your selections never leave your browser. Generation happens entirely client-side.
Raw

75 patterns · 944 B

# Generated by DevZone Tools — https://devzone.tools/tools/gitignore-generator
# Templates: Python
# 2026-04-20

# ---- Python ----
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
*.manifest
*.spec
pip-log.txt
pip-delete-this-directory.txt
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
*.mo
*.pot
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
instance/
.webassets-cache
.scrapy
docs/_build/
.pybuilder/
target/
.ipynb_checkpoints
profile_default/
ipython_config.py
.pdm.toml
__pypackages__/
celerybeat-schedule
celerybeat.pid
*.sage.py
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
.spyderproject.db
.spyproject
.ropeproject
/site
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
cython_debug/

What this template ignores

Ignores Python bytecode (__pycache__, .pyc), virtual environments (venv/, .venv/), distribution artifacts (dist/, *.egg-info/), test caches (.pytest_cache/, .coverage), and type checker caches (.mypy_cache/).

Common additions

  • +.env — secrets and environment variables
  • +*.sqlite3 — local development databases
  • +.python-version — if using pyenv

Commonly paired with

Frequently asked questions

Do I need to commit .gitignore?
Yes — .gitignore should be committed to the repository so all collaborators benefit from the same ignore rules.
How do I add custom patterns?
Open your .gitignore file and add the pattern on a new line. Use # for comments, * for wildcards, / to match directories, and ! to un-ignore a previously ignored path.
How do I ignore a file that is already tracked?
Adding a file to .gitignore does not remove it from tracking if it was previously committed. Run: git rm --cached <file> to stop tracking it without deleting the file locally.
Should I commit requirements.txt?
Yes — requirements.txt (or pyproject.toml) should always be committed so others can reproduce your environment.
What is __pycache__?
Python stores compiled bytecode (.pyc files) in __pycache__/ to speed up subsequent runs. These are machine-specific and regenerated automatically — never commit them.

Looking for something else? Browse all templates →