2010-03-11 21 views
17

Algo que escribí arroja muchas excepciones AttributeError al usar time.strptime() dentro de un hilo. Esto solo parece ocurrir en Windows (no en Linux), pero sea lo que sea: con un 'Google, parece que time.strptime() no se considera seguro para subprocesos.Thread-safe equivalente a python's time.strptime()?

¿Existe alguna forma mejor de crear un objeto datetime a partir de una cadena? El código actual se ve así:

val = DateFromTicks(mktime(strptime(val, '%B %d, %Y'))) 

Pero, eso produce las excepciones ya que se ejecuta dentro de un hilo.

Gracias!

Respuesta

24

De acuerdo con bug report, esto no ocurre si llama al strptime una vez antes de crear sus hilos. He hecho algunas pruebas que parecen confirmar esto. Tan solo realice cualquier llamada al strptime durante la inicialización como una solución alternativa.

+2

OMG hackalicious! – Wells

0

¿Has intentado sincronizarlo manualmente? Posiblemente usando el decorador de sincronización desde this recipe.

13

Sólo otra solución de este error, puede simplemente importar _strptime manualmente, junto con la fecha y hora

import _strptime 
from datetime import datetime 

# then, in threaded block 
datetime.strptime(date, format) 
-2

Cuando utilizo el import datetimedatetime.datetime.strptime() no emitir la excepción más.

+0

sigue arrojando excepciones para mí ... – mgaido