2009-10-20 13 views
8

Si estoy en modo depuración, quiero hacer otras cosas además de cuando no lo estoy.¿Cómo puedo verificar si la opción de depuración python está configurada desde una secuencia de comandos

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" 

a continuación:

python script.py 
not debug mode 

python -d script.py 
debug mode 

¿Cómo puedo detectar que? Ciertamente no está usando la variable __debug__.

+0

Bien aclarar para las preguntas a continuación. Todo lo que quiero hacer es recoger información del entorno general, pero intenté establecer una variable de entorno y buscarla en os.environ, pero eso no siempre funciona. – user132262

+0

opción no relacionada con '-d': [Python: cómo detectar el intérprete de depuración] (http://stackoverflow.com/questions/646518/python-how-to-detect-debug-interpreter) – jfs

+0

http: // stackoverflow. com/questions/27748132/is-there-a-flag-i-can-check-in-my-code-to-see-if-pycharms-depurador-está-ejecutando? answertab = activo # tab-top Esta respuesta funciona para mí. –

Respuesta

6

modo de depuración Analizador está habilitado con la opción de línea de comandos o -d variable de entorno PythonDebug ya partir de Python 2.6 se refleja en sys.flags.debug. ¿Pero estás seguro de que esto es lo que estás buscando?

+0

Eso funciona para 2.6 y superiores, gracias. Ahora, si alguien tiene una respuesta para 2.5 y abajo? – user132262

12

puede utilizar con el python -O__debug__ variables

donde -O medios optimizar. por lo que es falso __debug__

-d activa la depuración para el analizador, que no es lo que quiere

+0

sí, -O supervisa continuamente el script y ni siquiera necesita volver a cargar – igaurav

Cuestiones relacionadas