Python. Автозаполнение для внешних объектов API
Я работаю с 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, я открыт для него.
Заранее спасибо.
- Вопросы
- Pyscripter
- Python. Автозаполнение для внешних объектов API