Anpassung der Python-Laufzeit [sitecustomize, usercustomize]

site ist ein Modul, das bei der Initialisierung automatisch importiert wird und standortspezifische integrierte Funktionen hinzufügt. Darüber hinaus realisiert dieses Modul die Anpassungsfunktion durch Laden des angegebenen zusätzlichen Moduls, und es ist möglich, ortsspezifische und benutzerspezifische Anpassungen vorzunehmen.

Offizielles Dokument

Motivation

Ich habe usercustomize geschrieben, also vergiss nicht, dass ich es geschrieben habe.

Umgebung

macOS Catalina Python 3.7

Methode

Es gibt zwei Module, die von "site" geladen werden, "site customize" und "user customize". Der Anwendungsbereich ist unterschiedlich. Der Installationsort ist jedes Site-Packages-Verzeichnis. Sie können dies wie folgt überprüfen.

>>> 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')

Starten Sie den Dolmetscher

[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.
>>>

Es wird als Hi angezeigt.

Bonus

Perfect Python führt einen Hook ein, der "pdb" verwendet, um den Debugger automatisch zu starten, wenn eine Ausnahme abgefangen wird. War dort. Der Debugger startet jedes Mal, wenn eine Ausnahme auftritt. Ich bin daher der Meinung, dass er perfekt ist, um sich an pdb zu gewöhnen.

Es wurde praktisch, indem eine leichte Verbesserung vorgenommen wurde, so dass der PDF-Start ignoriert wird, wenn ein bestimmter Fehler auftritt.

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

Anpassung der Python-Laufzeit [sitecustomize, usercustomize]
Vergleich der Ausführungszeit von Python SDP
Empfangen Sie Laufzeitargumente in Python 2.7
Führen Sie Python Script während CodeSys # RunTime aus