Wenn Sie die Protokollierungsstufe DEBUG für ein Skript aktivieren möchten, das Sie nicht bearbeiten möchten (oder können), können Sie Ihren Start anpassen:
jcomeau@aspire:~$ python -c "import site; site._script()"
[snip]...
USER_BASE: '/home/jcomeau/.local' (exists)
USER_SITE: '/home/jcomeau/.local/lib/python2.7/site-packages' (exists)
ENABLE_USER_SITE: True
jcomeau@aspire:~$ mkdir -p ~/.local/lib/python2.7/site-packages
jcomeau@aspire:~$ vi ~/.local/lib/python2.7/site-packages/usercustomize.py
gib das Folgende ein:
import os, logging
if os.getenv('DEBUGGING'):
logging.basicConfig(level = logging.DEBUG)
dann kannst du einfach:
jcomeau@aspire:~$ mkdir -p /tmp/some/random/
jcomeau@aspire:~$ echo 'import logging; logging.debug("test")' >> /tmp/some/random/script.py
jcomeau@aspire:~$ DEBUGGING=1 python /tmp/some/random/script.py
DEBUG:root:test
von Paul Ollis unter http://nedbatchelder.com/blog/201001/running_code_at_python_startup.html
2017-07-18: Ich habe seitdem zu einer anderen Methode gewechselt:
logging.basicConfig(level=logging.DEBUG if __debug__ else logging.INFO)
Wenn Sie ohne Optimierung (wie in python script.py) arbeiten, erhalten Sie das Zeug auf DEBUG-Ebene, während python -OO script.pySie es nicht tun , wenn Sie mit laufen . Keine Umgebungsvariablen zu setzen.