Python. Автозаполнение для внешних объектов API

55
5

Я работаю с SAP2000 (программное обеспечение для структурного расчета), которое имеет API, который позволяет устанавливать соединение с другими программными продуктами.

Я уже разработал некоторые программы в VB VBA, используя эту функцию. Например, в VBA достаточно добавить ссылку в среду IDE в файл "SAP2000v20.tlb", чтобы сделать автозаполнение работой как шарм (просто набрав точку после того, как объект SAP2000 раскрывает все его методы, свойства и т.д.),

Теперь я начинаю с Python и пытаюсь разработать те же приложения на этом языке, используя PyScripter в качестве среды IDE. Но я не знаю, как настроить PyScripter для автозаполнения, чтобы работать так же, как и в VB.

В соответствии с примером, представленным в документации SAP2000, я ранее установил библиотеку "comtypes" и набрал следующий код:

import os
import sys
import comtypes.client

#attach to a running instance of SAP2000
SapObject = comtypes.client.GetActiveObject("CSI.SAP2000.API.SapObject")

#start SAP2000 application
SapObject.ApplicationStart()

#create SapModel object
SapModel = SapObject.SapModel

#initialize model
SapModel.InitializeNewModel()
....

Код работает нормально, но проблема заключается в том, что функция автозаполнения для объектов SAP2000 недоступна при наборе текста. В PyScripter, Tools-> "Редактировать сценарии запуска", я включил строку с "import comtypes.client", но, похоже, этого недостаточно для моей цели.

Если я введу в модуль следующий код:

SapObject = comtypes.client.GetActiveObject("CSI.SAP2000.API.SapObject")

и запустите его, то автозаполнение работает в окне интерпретатора Python, но не в главном окне IDE, где я набираю весь код, и это было бы очень полезно.

Может ли кто-нибудь помочь мне в этом вопросе? Невозможность автозаполнения очень болезненна при наборе большого количества кода, особенно когда объекты не известны, как это происходит с данными из SAP2000. Кстати, я не привязан к PyScripter, поэтому, если вы знаете, что это автозаполнение работает отлично с другими IDE, я открыт для него.

Заранее спасибо.

спросил(а) 2018-09-17T23:52:00+03:00 1 год, 2 месяца назад
0
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема