I'm trying to use comtypes to interface with a vendor provided COM interface. When I run it, I get the following error message:
(wyatt) PS C:\wyatt-control> python .\test_api.py
Traceback (most recent call last):
File "C:\wyatt-control\test_api.py", line 11, in <module>
astra_com = comtypes.client.CreateObject("WTC.Astra8.Application.1")
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\client\_create.py", line 122, in CreateObject
return _manage(obj, clsid, interface=interface)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\client\_managing.py", line 113, in _manage
obj = GetBestInterface(obj)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\client\_managing.py", line 87, in GetBestInterface
mod = GetModule(tlib)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\client\_generate.py", line 127, in GetModule
return ModuleGenerator(tlib, pathname).generate()
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\client\_generate.py", line 232, in generate
wrp_code = codegen.generate_wrapper_code(items, filename=self.pathname)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 202, in generate_wrapper_code
self.generate_all(items)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 110, in generate_all
self.generate(item)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 106, in generate
mth(item)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 370, in Structure
self.generate(struct.get_body())
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 106, in generate
mth(item)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\codegenerator.py", line 396, in StructureBody
pack = packing.calc_packing(body.struct, fields)
File "C:\Users\biocat\miniconda3\envs\wyatt\lib\site-packages\comtypes\tools\codegenerator\packing.py", line 58, in calc_packing
raise PackingError(f"PACKING FAILED: {details}")
UnboundLocalError: local variable 'details' referenced before assignment
Looking at the calc_packing code, the error arises because details is being used to catch the error, and in python 3 such variables are deleted after the except block finishes. I think it could be fixed by changing the except as:
except PackingError as e:
details = e
continue
I'm trying to use comtypes to interface with a vendor provided COM interface. When I run it, I get the following error message:
Looking at the calc_packing code, the error arises because details is being used to catch the error, and in python 3 such variables are deleted after the except block finishes. I think it could be fixed by changing the except as: