web-dev-qa-db-fra.com

Les meilleures pratiques pour ajouter un fichier .gitignore à Python projets?

J'essaie de collecter certains de mes paramètres par défaut et une chose que j'ai réalisée est que je n'ai pas de norme pour les fichiers .gitignore. Il y a un bon fil montrant un bon .gitignore pour les projets Visual Studio , mais je ne vois pas beaucoup de recommandations pour Python et les outils associés (PyGTK, Django).

Jusqu'à présent, j'ai ...

*.pyc
*.pyo

... pour les objets compilés et ...

build/
dist/

... pour la sortie setuptools.

Quelles sont les meilleures pratiques pour les fichiers .gitignore et où puis-je aller pour en savoir plus sur ces meilleures pratiques?

163
ewall

Lors de l'utilisation de buildout j'ai suivi dans .gitignore (avec *.pyo et *.pyc):

.installed.cfg
bin
develop-eggs
dist
downloads
eggs
parts
src/*.Egg-info
lib
lib64

Merci à Jacob Kaplan-Moss

Aussi, j'ai tendance à mettre .svn dans la mesure où nous utilisons plusieurs SCM-s où je travaille.

51
Davor Lucic

Github a un excellent passe-partout .gitignore

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]

# C extensions
*.so

# Distribution / packaging
bin/
build/
develop-eggs/
dist/
eggs/
lib/
lib64/
parts/
sdist/
var/
*.Egg-info/
.installed.cfg
*.Egg

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
.tox/
.coverage
.cache
nosetests.xml
coverage.xml

# Translations
*.mo

# Mr Developer
.mr.developer.cfg
.project
.pydevproject

# Rope
.ropeproject

# Django stuff:
*.log
*.pot

# Sphinx documentation
docs/_build/
248
seanrose

local_settings.py , pour Django projets.

* ~ pour tous les projets.

15
Ofri Raviv

Une question est si vous voulez également utiliser git pour l'épuisement de vos projets. Si tel est le cas, vous voudrez probablement exclure votre fichier sqlite local du référentiel, il en va probablement de même pour les téléchargements de fichiers (principalement dans votre dossier multimédia). (Je parle de Django maintenant, puisque votre question porte également la mention Django.)

6
Bernhard Vallant

Couvre la plupart des choses générales -

# 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/
*.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/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# 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/

Référence: python .gitignore

5
Ani Menon

Voici d'autres fichiers pouvant être laissés par setuptools:

MANIFEST
*.Egg-info
4
jathanism