Форум сайта python.su
Пишу программу на Python,
Windows 7 Профессиональная 64bit
import win32com.client xl = win32com.client.Dispatch("Simatic.Simatic")
PythonWin 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32. Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information. >>> C:\Users\and\AppData\Local\Programs\Python\Python35\lib\re.py:203: FutureWarning: split() requires a non-empty pattern match. return _compile(pattern, flags).split(string, maxsplit) Traceback (most recent call last): File "C:\Users\and\AppData\Local\Programs\Python\Python35\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch IDispatch = pythoncom.connect(IDispatch) pywintypes.com_error: (-2147221021, 'Операция недоступна', None, None) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\and\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 323, in RunScript debugger.run(codeObject, __main__.__dict__, start_stepping=0) File "C:\Users\and\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\debugger\__init__.py", line 60, in run _GetCurrentDebugger().run(cmd, globals,locals, start_stepping) File "C:\Users\and\AppData\Local\Programs\Python\Python35\Lib\site-packages\pythonwin\pywin\debugger\debugger.py", line 654, in run exec(cmd, globals, locals) File "C:\Users\and\Desktop\Test.py", line 1, in <module> import win32com.client File "C:\Users\and\AppData\Local\Programs\Python\Python35\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx) File "C:\Users\and\AppData\Local\Programs\Python\Python35\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName return (_GetGoodDispatch(IDispatch, clsctx), userName) File "C:\Users\and\AppData\Local\Programs\Python\Python35\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch) pywintypes.com_error: (-2147221164, 'Класс не зарегистрирован', None, None) >>>
Microsoft Windows [Version 6.1.7601] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. C:\Windows\system32>regsvr32.exe "c:\Program Files (x86)\Siemens\Step7\S7BIN\S7A BATCX.DLL" C:\Windows\system32>
Офлайн
Подскажите хотя бы, что значит для питоновской библиотеки win32com, что класс не зарегистрирован?
Где должна в реестре быть запись о классе, что бы он так сказать прошёл регистрацию?
Отредактировано andman (Сен. 23, 2016 07:48:37)
Офлайн
А у меня встречный вопрос. Интересно важно какая у вас архитектура? Питон у вас x64 а batchx.dll вроде как 32. Я помнится давным давно когда через opc общался с различными штуками из питона, боролся с этим. Может в этом дело? Не спец по com так что не судите строго.
p.s.
Мой опыт общения с com показал что это крайне неудобный и медленный способ организации связи с приложениями. Поэтому наверное тут никто вам и не отвечает. COM это последнее что будут использовать питон программисты :)
Отредактировано doza_and (Сен. 23, 2016 08:03:20)
Офлайн
doza_and
А у меня встречный вопрос. Интересно важно какая у вас архитектура? Питон у вас x64 а batchx.dll вроде как 32. Я помнится давным давно когда через opc общался с различными штуками из питона, боролся с этим. Может в этом дело? Не спец по com так что не судите строго.p.s. Мой опыт общения с com показал что это крайне неудобный и медленный способ организации связи с приложениями. Поэтому наверное тут никто вам и не отвечает. COM это последнее что будут использовать питон программисты
Отредактировано andman (Сен. 23, 2016 08:13:15)
Офлайн
p.s.
Мой опыт общения с com показал что это крайне неудобный и медленный способ организации связи с приложениями. Поэтому наверное тут никто вам и не отвечает. COM это последнее что будут использовать питон программисты
Офлайн
ZerG
Давайте начнем с того что вы для своего проекта попробуете использовать что либо более адекватное
например
https://github.com/pyserial/pyserial
https://pythonhosted.org/pyserial/shortintro.html#opening-serial-ports
Отредактировано andman (Сен. 23, 2016 09:05:27)
Офлайн
Да тут вы правы! Я не понял при чем тут реализация задачи общения по ком порту на питоне и автоматизация с екселем. Кроме того никто не запрещает вам использовать вин32 для других задач!
На данный момент я предложил попробовать просто связаться с вашим устройством посредством pyserial
что бы локализовать вашу проблему
Офлайн
ZerG
Да тут вы правы! Я не понял при чем тут реализация задачи общения по ком порту на питоне и автоматизация с екселем. Кроме того никто не запрещает вам использовать вин32 для других задач! На данный момент я предложил попробовать просто связаться с вашим устройством посредством pyserial что бы локализовать вашу проблему
Офлайн
Вот теперь наконец-то понял!!!!
Сдедайте скрины на ком обьект с его названиями и свойствами
Офлайн
ZerG
Вот теперь наконец-то понял!!!! Сдедайте скрины на ком обьект с его названиями и свойствами
Отредактировано andman (Сен. 23, 2016 09:19:16)
Офлайн