__pycache__est un dossier contenant le bytecode Python 3 compilé et prêt à être exécuté .
Je ne recommande pas de supprimer régulièrement ces fichiers ou de supprimer la création pendant le développement car cela peut nuire aux performances. Ayez juste une commande récursive prête (voir ci-dessous) pour nettoyer en cas de besoin car le bytecode peut devenir périmé dans les cas marginaux (voir commentaires).
Les programmeurs Python ignorent généralement le bytecode. En effet __pycache__et ce *.pycsont des lignes communes à voir dans les .gitignorefichiers. Le bytecode n'est pas destiné à la distribution et peut être démonté à l'aide du dismodule .
Si vous utilisez OS X, vous pouvez facilement masquer tous ces dossiers dans votre projet en exécutant la commande suivante à partir du dossier racine de votre projet.
find . -name '__pycache__' -exec chflags hidden {} \;
Remplacez __pycache__par *.pycpour Python 2.
Cela définit un indicateur sur tous ces répertoires (fichiers .pyc) indiquant au Finder / Textmate 2 de les exclure des listes. Surtout, le bytecode est là, il est juste caché.
Réexécutez la commande si vous créez de nouveaux modules et souhaitez masquer un nouveau bytecode ou si vous supprimez les fichiers de bytecode masqués.
Sous Windows, la commande équivalente peut être (non testée, bienvenue dans le script batch):
dir * /s/b | findstr __pycache__ | attrib +h +s +r
Ce qui revient à parcourir les dossiers de masquage du projet en utilisant un clic droit> masquer ...
L'exécution de tests unitaires est un scénario (plus dans les commentaires) où la suppression des *.pycfichiers et des __pycache__dossiers est en effet utile. J'utilise les lignes suivantes dans mon ~/.bash_profileet je cours juste clpour nettoyer en cas de besoin.
alias cpy='find . -name "__pycache__" -delete'
alias cpc='find . -name "*.pyc" -delete'
...
alias cl='cpy && cpc && ...'