Byte-compiled / optimized / DLL files
__pycache__/ .py[cod] $py.class
C extensions
*.so
Distribution / packaging
.Python build/ develop-eggs/ dist/ downloads/ eggs/ .eggs/ lib/ lib64/ parts/ sdist/ var/ wheels/ share/python-wheels/ .egg-info/ .installed.cfg .egg MANIFEST
PyInstaller
Usually these files are written by a python script from a template
before PyInstaller builds the exe, so as to inject date/other infos into it.
.manifest .spec
Installer logs
pip-log.txt pip-delete-this-directory.txt
Unit test / coverage reports
htmlcov/ .tox/ .nox/ .coverage .coverage. .cache nosetests.xml coverage.xml .cover *.py,cover .hypothesis/ .pytest_cache/ cover/
Translations
.mo .pot
Django stuff:
*.log local_settings.py db.sqlite3 db.sqlite3-journal
Flask stuff:
instance/ .webassets-cache
Scrapy stuff:
.scrapy
Sphinx documentation
docs/_build/
PyBuilder
.pybuilder/ target/
Jupyter Notebook
.ipynb_checkpoints
IPython
profile_default/ ipython_config.py
pyenv
For a library or package, you might want to ignore these files since the code is
intended to run in multiple environments; otherwise, check them in:
.python-version
pipenv
According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
install all needed dependencies.
#Pipfile.lock
UV
Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
This is especially recommended for binary packages to ensure reproducibility, and is more
commonly ignored for libraries.
#uv.lock
poetry
Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
This is especially recommended for binary packages to ensure reproducibility, and is more
commonly ignored for libraries.
https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
pdm
Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
in version control.
https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml .pdm-python .pdm-build/
PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
Celery stuff
celerybeat-schedule celerybeat.pid
SageMath parsed files
*.sage.py
Environments
.env .venv env/ venv/ ENV/ env.bak/ venv.bak/
Spyder project settings
.spyderproject .spyproject
Rope project settings
.ropeproject
mkdocs documentation
/site
mypy
.mypy_cache/ .dmypy.json dmypy.json
Pyre type checker
.pyre/
pytype static type analyzer
.pytype/
Cython debug symbols
cython_debug/
PyCharm
JetBrains specific template is maintained in a separate JetBrains.gitignore that can
be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
and can be added to the global gitignore or merged into this file. For a more nuclear
#.idea/
Abstra
Abstra is an AI-powered process automation framework.
Ignore directories containing user credentials, local state, and settings.
Learn more at https://abstra.io/docs
.abstra/
Visual Studio Code
Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
and can be added to the global gitignore or merged into this file. However, if you prefer,
.vscode/
Ruff stuff:
.ruff_cache/
PyPI configuration file
.pypirc
Cursor
Cursor is an AI-powered code editor. .cursorignore specifies files/directories to
exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
refer to https://docs.cursor.com/context/ignore-files
.cursorignore .cursorindexingignore