web-dev-qa-db-fra.com

Est-il possible de ne pas afficher les fichiers .pyc (bytecode Python) sous Nautilus?

Existe-t-il un moyen de les désactiver sous les structures de répertoires dans Nautilus? Mon projet Django devient assez déroutant avec eux.

4
empedokles

Pour Django, le moyen le plus rapide pourrait être d'arrêter en les générant en premier lie .

Maintenant, cela peut sembler une idée terrible ... La précompilation de bytecode est ce qui rend Python aussi rapide que possible, de sorte que vous souhaitiez en faire quelque chose en production, mais nous pouvons désactiver la génération de bytecode uniquement pour les choses qui passent par manage.py.

Ouvrez-le et ajoutez une ligne sys.dont_write_bytecode = True. Ça devrait ressembler a quelque chose comme ca:

#!/usr/bin/env python
import os
import sys

sys.dont_write_bytecode = True

if __== "__main__":
    os.environ.setdefault("Django_SETTINGS_MODULE", "ap.settings")

    from Django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Avertissement: ap.settings est spécifique à mon projet, pas le vôtre, et la mise en page de le fichier peut être différent dans votre version de Django ... Faites attention si vous copiez le tout!

Les utilisations en production (comme via un serveur wsgi) doivent ignorer manage.py et continuer à générer les fichiers de type bytecode, mais en développement (où il est plus probable que vous utilisiez ./manage.py runserver — devrait rester propre.

Cela ralentira un peu les choses .


Oh et pour nettoyer:

# Python 2
find /path/to/project -name '*.pyc' -type f -delete

# Python 3
find /path/to/project -name '__pycache__' -exec rm -rf {} +

Sachez que ces deux instructions suppriment des fichiers , vous pouvez donc les vérifier (supprimez les instructions -delete ou -exec ...) avant de courir ce chaud. Ils vous montreront simplement quels fichiers correspondent.

5
Oli