2010-03-11 5 views
17

मैंने जो कुछ लिखा है, वह AttributeError अपवादों को थ्रेड के अंदर time.strptime() का उपयोग करते समय फेंकता है। ऐसा लगता है कि विंडोज़ (लिनक्स पर नहीं) पर ऐसा लगता है लेकिन जो कुछ भी हो रहा है, लेकिन ऐसा लगता है कि time.strptime() को थ्रेड-सुरक्षित नहीं माना जाता है।पाइथन के समय के बराबर थ्रेड-सुरक्षित .स्ट्रिप्टाइम()?

क्या स्ट्रिंग से डेटाटाइम ऑब्जेक्ट बनाने का कोई बेहतर तरीका है? वर्तमान कोड इस तरह दिखता है:

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

लेकिन, यह अपवाद उत्पन्न करता है क्योंकि यह थ्रेड के अंदर चलाया जाता है।

धन्यवाद!

उत्तर

24

bug report के अनुसार, ऐसा नहीं होता है यदि आप strptime को अपने धागे बनाने से पहले कॉल करते हैं। मैंने थोड़ा परीक्षण किया है जो इसकी पुष्टि करता है। तो एक वर्कअराउंड के रूप में प्रारंभ के दौरान strptime पर बस कोई कॉल करें।

+2

ओएमजी हैकलाइश! – Wells

0

क्या आपने इसे मैन्युअल रूप से सिंक्रनाइज़ करने का प्रयास किया है? शायद this recipe से सिंक्रनाइज़ेशन सजावट का उपयोग कर।

13

इस बग के लिए बस एक और वैकल्पिक हल, तो आप बस मैन्युअल रूप से _strptime आयात कर सकते हैं, दिनांक

import _strptime 
from datetime import datetime 

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

के साथ जब मैं import datetimedatetime.datetime.strptime() का उपयोग अब अपवाद नहीं है।

+0

यह मुझे अपवाद फेंकना जारी रखता है ... – mgaido

संबंधित मुद्दे