Ich baue gerade eine GUI in wx.Python, mein Problem liegt jedoch woanders deswegen habe ich nicht uns GUI-Forum gepostet.
Jedenfalls wollte ich threading einbauen, damit die GUI weiter reagiert wenn gerade eine Operation läuft.
Jetzt bekomme ich folgenden Fehler:
Code: Alles auswählen
Exception in thread Thread-4:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 530, in __bootstrap_inner
self.run()
File "C:\work\workspace\ChecktO_ol\src\ChecktO_ol.py", line 117, in run
for error in self.checkson.main(file):
File "C:\work\workspace\ChecktO_ol\src\word_test.py", line 31, in main
word = win32.gencache.EnsureDispatch('Word.Application')
File "C:\Python27\lib\site-packages\win32com\client\gencache.py", line 529, in EnsureDispatch
disp = win32com.client.Dispatch(prog_id)
File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147221008, 'CoInitialize wurde nicht aufgerufen.', None, None)
Code: Alles auswählen
class CheckThread(Thread):
"""Test Worker Thread Class."""
def __init__(self, files):
"""Init Worker Thread Class."""
Thread.__init__(self)
self.checkson = word_test.CheckOr()
self.files = files
self.start() # start the thread
def run(self):
"""Run Worker Thread."""
# This is the code executing in the new thread.
for file in self.files:
self.postTime("Working on %s...\n" % file)
for error in self.checkson.main(file):
self.postTime(" Unknown: '%s' at '%s'(%i)\n" % (error[2],error[1],error[0]))
def postTime(self, amt):
Publisher().sendMessage("update", amt)
Code: Alles auswählen
def main(self, file):
word = win32.gencache.EnsureDispatch('Word.Application')
doc = word.Documents.Open(file)
errors = []
p = 0
for par in doc.Paragraphs:
if not(self.zeichen(str(par.Format.Style)).lower().strip() in self.final_formats):
#print "WRONG: %s" % self.zeichen(str(par.Format.Style)).lower()
#print "P%i: %s" % (p+1,par)
errors.append([p+1,str(par).strip(),self.zeichen(str(par.Format.Style)).lower()])
p+=1
doc.Close()
word.Application.Quit(-1)
return errors
Weis einer wie ich das nun machen soll ?
Vielen Dank im Vorraus !