का कारण बनने वाले एकाधिक थ्रेड और ऑटोरेलोडिंग प्रोग्राम मैं स्थानीय रूप से मल्टीथ्रेड किए गए वेब अनुप्रयोगों को डीबग करने के लिए आईपीडीबी डीबगर का उपयोग कर रहा हूं (Django, Plone)। जब मैं डीबग प्रॉम्प्ट पर होता हूं तो अक्सर आईपीडीबी भ्रमित हो जाता है क्योंकि ऑटोरलोड होता है। जिसके परिणामस्वरूप स्टैक ट्रेस अपआईपीडीबी, प्रोग्रामिंग एरर
/Users/mikko/code/xxxx/venv/lib/python2.7/site-packages/IPython/core/history.pyc in writeout_cache(self, conn)
605 with self.db_input_cache_lock:
606 try:
--> 607 self._writeout_input_cache(conn)
608 except sqlite3.IntegrityError:
609 self.new_session(conn)
/Users/mikko/code/xxxx/venv/lib/python2.7/site-packages/IPython/core/history.pyc in _writeout_input_cache(self, conn)
589 for line in self.db_input_cache:
590 conn.execute("INSERT INTO history VALUES (?, ?, ?, ?)",
--> 591 (self.session_number,)+line)
592
593 def _writeout_output_cache(self, conn):
ProgrammingError: SQLite objects created in a thread can only be used in that same thread.The object was created in thread id 4546363392 and this is thread id 140735211872640
इस के बाद आता है, या तो कार्यक्रम बंद नहीं किया जा सकता (धागे फांसी) या खुद ipdb कार्य करना बंद कर।
क्या इस समस्या को ipdb के साथ माइग्रेट करने और इसे अधिक बहु-थ्रेड/ऑटोरेलोड सुरक्षित बनाने का कोई तरीका है?
EDIT: प्रश्न को थोड़ा स्पष्ट करें, क्योंकि मेरा मानना है कि यह आईपीथॉन मुद्दों के अंतर्निहित हो सकता है। आईपीथॉन को रीलोड पर इतिहास छोड़ने या समस्याग्रस्त आईपीथॉन को अक्षम करने के साथ कुछ प्रकार का कामकाज हो सकता है SQLite कुछ अन्य तरीकों से लिखता है।