12

If I'm in debug mode, I want to do other stuff than when I'm not.

if DEBUG:
    STORED_DATA_FILE = os.path.join(TEMP_DIR, 'store.dat')
    LOG_LEVEL = logging.DEBUG
    print "debug mode"
else:
    STORED_DATA_FILE = os.path.join(SCRIPT_PATH, 'store.dat')
    LOG_LEVEL = logging.INFO
    print "not debug mode"

then:

python script.py
not debug mode

python -d script.py
debug mode

How can I detect that? It certainly isn't using the __debug__ variable.

3
  • Well to clarify for the questions below. All I really want to do is pick up some information from the general environment, but I tried setting an environment variable and looking for it in os.environ but that does not always work. Commented Oct 20, 2009 at 9:48
  • unrelated to -d option: Python: How to detect debug interpreter Commented Nov 12, 2012 at 22:47
  • stackoverflow.com/questions/27748132/… This answer work for me. Commented Sep 15, 2015 at 8:07

2 Answers 2

14

you can use python -O with the __debug__ variable

where -O means optimise. so __debug__ is false

-d turns on debugging for the parser, which is not what you want

Sign up to request clarification or add additional context in comments.

1 Comment

yes , -O continuously monitors the script and don't even need to reload
9

Parser debug mode is enabled with -d commandline option or PYTHONDEBUG environment variable and starting from python 2.6 is reflected in sys.flags.debug. But are you sure this is what you are looking for?

1 Comment

That works for 2.6 and above, thanks. Now if anyone has an answer for 2.5 and below?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.