尝试使用 win32com 分派具有 Python 的 SASEGObjectModel COM 对象时出现问题

Issues trying to Dispatch a SASEGObjectModel COM Object with Python using win32com

我正在尝试使用 pywin32 来使用 Python 来操作 SAS Enterprise Guide。但是我 运行 犯了一些错误。我已经尝试过 Dispatch 和 EnsureDispatch,但都 return 相同的错误:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch
    IDispatch = pythoncom.connect(IDispatch)
pywintypes.com_error: (-2147221021, 'Operation unavailable', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\xxxxxxx\Desktop\test.py", line 4, in <module>
    sas = EnsureDispatch('SASEGObjectModel.Application.7.1')
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\gencache.py", line 527, in EnsureDispatch
    disp = win32com.client.Dispatch(prog_id)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\ProgramData\Anaconda3\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147024809, 'The parameter is incorrect.', None, None)

(这个是用EnsureDispatch,用Dispatch报错也差不多,只是第二次traceback后少了第2行和第3行)

此外,我已经尝试 运行 makepy(来自同一个库)以查看它会怎样 return,我收到以下消息:

Could not locate a type library matching 'SASEGObjectModel.Application.7.1'

如果我尝试使用 vbs 执行此操作,请使用以下代码:

Set app = CreateObject("SASEGObjectModel.Application.7.1")

WScript.echo app.Name

它显示一个消息框,上面写着 'Enterprise Guide',表明该对象对系统可用。

我已经尝试通过 SAS 支持社区寻求帮助,after many interesting suggestions,我仍然无法解决问题。但是有一件事我没有尝试过,但最终成功了,那就是安装一个新的 python 安装(不是 Anaconda),安装 PyWIN 并且它很简单。