Personnalisation du runtime Python [sitecustomize, usercustomize]

site est un module qui est automatiquement importé lors de l'initialisation, et ajoute des fonctions intégrées spécifiques au site. De plus, ce module réalise la fonction de personnalisation en chargeant le module supplémentaire spécifié, et il est possible de personnaliser spécifique au site et spécifique à l'utilisateur.

Document officiel

Motivation

J'ai écrit usercustomize, alors n'oubliez pas que je l'ai écrit.

environnement

macOS Catalina Python 3.7

Méthode

Il y a deux modules chargés par «site», «site personnaliser» et «personnaliser par l'utilisateur». Le champ d'application est différent. L'emplacement d'installation est le répertoire de chaque site-packages. Vous pouvez le vérifier comme suit.

>>> import site
>>> site.getsitepackages()
['/usr/local/var/pyenv/versions/3.7.4/lib/python3.7/site-packages']
>>> site.getusersitepackages()
'/Users/[user_name]/.local/lib/python3.7/site-packages'

python:/User/[user_name]/.local/lib/python3.7/site-packages.py


print('Hi')

Démarrer l'interprète

[user_name]@MacBook ~ % python
Hi
Python 3.7.4 (default, Oct  5 2019, 02:45:54)
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Il est affiché comme Salut.

prime

Perfect Python introduit un hook qui utilise pdb pour démarrer automatiquement le débogueur lorsqu'une exception est interceptée. Était là. Le débogueur démarre chaque fois qu'une exception se produit, donc je pense qu'il est parfait pour s'habituer à pdb.

Cela est devenu pratique en apportant une légère amélioration afin que le démarrage de pdb soit ignoré lorsqu'une erreur spécifiée se produit.

usercutomize.py


import pdb
import sys
import traceback


IGNORE = {'NameError', 'ModuleNotFoundError', 'KeyboardInterrupt', 'SyntaxError'}


def debug_rescue(_type, _value, _traceback):
    traceback.print_exception(_type, _value, _traceback)
    if _value.__class__.__name__ not in IGNORE:
        pdb.pm()


sys.excepthook = debug_rescue

Recommended Posts

Personnalisation du runtime Python [sitecustomize, usercustomize]
Comparaison du temps d'exécution de Python SDP
Recevoir des arguments d'exécution dans Python 2.7
Exécuter le script Python pendant CodeSys # RunTime