.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.
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 →