Я пытаюсь получить торговые цены от поставщика данных под названием eSignal. Используя их примеры на странице разработчика (Ссылка), я могу легко воспроизвести функциональность в С#. К сожалению, провайдер не поддерживает разработчиков Python, и поэтому я пытаюсь сделать это самостоятельно, используя ссылку на объект com в их примерах. Однако я уже терплю неудачу в самом начале, так как не могу отправить рассматриваемый ком-объект.
Объект com предоставляется eSignal (WinSig.exe содержит данные объекта com), и я зарегистрировал его с помощью makepy (IESignal v.1.0.0):
C:\Python26\Lib\site-packages\win32com\client>python makepy.py
Generating to C:\Python26\lib\site-packages\win32com\gen_py\9C7CCB46-E9E8-4DDD-9784-4458877C2F10x0x1x0.py
Building definitions from type library...
Generating...
Importing module
Таким образом, файл модуля успешно сгенерирован. Затем я пытаюсь отправить его из python:
from win32com.client import Dispatch
from win32com.client.gencache import EnsureDispatch
CLSID = '{9C7CCB46-E9E8-4DDD-9784-4458877C2F10}'
print Dispatch(CLSID)
Однако это приводит к ошибке:
com_error: (-2147221164, 'Class not registered', None, None)
Это происходит для Dispatch, а также для SureDispatch. Я также просмотрел модуль, сгенерированный makepy, и попытался отправить каждый отдельный CLSID, предоставленный там, - безрезультатно.
Кто-нибудь знает, в чем может быть дело? Ваша помощь очень ценится!
Благодарность!
1 ответ
Вы уверены, что создаете экземпляр класса (но не интерфейса). Погуглив по uid {9C7CCB46-E9E8-4DDD-9784-4458877C2F10}, я получил ServerEsignal - и это похоже на интерфейс (IESignal)
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.