Прошу помощи.
Инструменты - Vista SP2 x86, python 3-2-3, pywin32-217, python WMI 1.4.9 . Всё самое свежее
Пытаюсь запустить функцию в потоках.
Простой код (без потока) работает:
import win32com.client def fuu(id): print ('f1') objWMI4=win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") print ('f2') # Main function objWMIServiceLocal=win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") print ('1') fuu(5) print ('2')
Всё компилится и выполняется
Попытка ввести именно эту функцию в поток вызывает ошибку COM (насколько я понимаю)
import win32com.client import threading def fuu(id): print ('f1') objWMI4=win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") print ('f2') # Main function objWMIServiceLocal=win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") print ('1') t = threading.Thread(target=fuu,args= (5,) ) print ('2') t.start() print ('3')
Включение - вызывает ошибку:
Exception in thread Thread-1: Traceback (most recent call last): File "D:\Python 3-2-3\lib\threading.py", line 740, in _bootstrap_inner self.run() File "D:\Python 3-2-3\lib\threading.py", line 693, in run self._target(*self._args, **self._kwargs) File "d:\fb-py4-1.py", line 9, in fuu objWMI4=win32com.client.GetObject(r"winmgmts:\\.\root\cimv2") File "D:\Python 3-2-3\lib\site-packages\win32com\client\__init__.py", line 72, in GetObject return Moniker(Pathname, clsctx) File "D:\Python 3-2-3\lib\site-packages\win32com\client\__init__.py", line 87, in Moniker moniker, i, bindCtx = pythoncom.MkParseDisplayName(Pathname) pywintypes.com_error: (-2147221020, 'Синтаксическая ошибка', None, None)
P.S. Только что попробовал на Python 2.7 - такая же ошибка