Purger les fichiers .pyc (et un hook git en bonus) 3


Vous supprimez un module complet, mais l’import continue de fonctionner. Redémarrage de serveur, de machine. Suppression et ajout de ligne. Rien n’y fait, il est toujours là. Vous êtes fatigué, énervé, et vous appelez votre collègue pour lui montrer à quel point Python est complètement débile. Réplique sourire en coin, l’index taquin pointant vers les pixels de votre honte: t’as un fichier .pyc là.

Shit.

Vous pouvez toujours vous jurer que la prochaine fois on ne vous y prendra plus, vous vous ferez avoir à nouveau. C’est perfide un .pyc, ça traine toujours dans un fatra de noms qui se ressemblent: settings.py, local_settings.py, common_settings.pyc, prod_settings.py, etc.

Soyez malin, soyez bourrin:

find . -name "*.pyc" -delete

Purge complète des petits salopards, du larynx jusqu’au colon.

Et puisqu’être un bon informaticien, c’est avant tout être un bon feignant, autant le faire automatiquement quand on en a le plus besoin. Par exemple quand on change de branche sous git:

#!/bin/bash
# remove pyc files and empty directories from the repo when switching branch
 
# $3 = 1 if checkout aims a commit and not a file
if [ $3 = 1 ]
then
 
    # Start from the repository root.
    cd ./$(git rev-parse --show-cdup)
 
    # Delete .pyc files and empty directories.
    find . -name "*.pyc" -delete
    find . -type d -empty -delete
 
fi

À mettre dans votreprojet/.git/hooks/post-checkout.

Dans la version 3 de Python les fichiers .pyc seront groupés dans un seul dossier, et nettement plus faciles à nettoyer. En attendant, exprimez votre côté subtile, faites tout sauter.

3 thoughts on “Purger les fichiers .pyc (et un hook git en bonus)

  • roro

    Exellent…!
    Allez fouillez vos disques et postez tous vos bouts de codes (commentés sinon rien…) Les pas finis, les buggés, les absurdes, et les autres.
    Que ceux qui ne savent pas ce qu’est le “contenu” aillent faire un tour sur: “Justbasic/archives”, pour voir.

  • DylannCordel

    exprimez votre côté subtile, faites tout sauter.

    J’aime qu’on me parle comme ça :)
    Très utile ton hook en tous cas, ça évite les erreurs à s’arracher les cheveux parce qu’il utilise une vieille version d’un pyc qui ne devrait plus exister.

    Thx :)

Leave a comment

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.