Python debug flag
04 Apr 2018 | python debug원인
- Python에서 global debug flag를 가져다 쓰고싶었음..
- 찾아보니
__debug__
라는 flag를 지원한다.- 동작 방식
-O
또는-OO
flag를 주면 False가 된다.- 안주면 True!
- 위의 플래그는 optimize flag인데, 릴리즈 전에는 optimize를 한다는 가정하에 쓴 것 같다..
- 동작 방식
- 좀 불편해보여서 다른 방식이 있나 찾아보았다.
sys.flags.debug
를 가지고도 알 수 있다.-d
옵션을 주면sys.flags.debug
가 켜진다.
attribute | flag |
---|---|
debug | -d |
py3k_warning | -3 |
division_warning | -Q |
division_new | -Qnew |
inspect | -i |
interactive | -i |
optimize | -O or -OO |
dont_write_bytecode | -B |
no_user_site | -s |
no_site | -S |
ignore_environment | -E |
tabcheck | -t or -tt |
verbose | -v |
unicode | -U |
bytes_warning | -b |
hash_randomization | -R |
예시
root@brain-dev-gpu1:~# python -OO test.py
sys.flags.debug = 0
sys.flags.optimize = 2
__debug__ = False
root@brain-dev-gpu1:~# python -O test.py
sys.flags.debug = 0
sys.flags.optimize = 1
__debug__ = False
root@brain-dev-gpu1:~# python -d test.py
sys.flags.debug = 1
sys.flags.optimize = 0
__debug__ = True
root@brain-dev-gpu1:~# python test.py
sys.flags.debug = 0
sys.flags.optimize = 0
__debug__ = True