Отладка плагинов в MS Visual Studio Code

В среде разработки MS Visual Studio Code есть возможность отладки плагинов и приложений для Аксиомы.ГИС. Перед началом выполнения данной инструкции необходимо настроить окружение разработчика в папке с плагином так, как это описано здесь: Настройка окружения разработчика в MS Visual Studio Code.


  1. Для начала надо установить модуль ptvsd. Для этого, если у вас уже создано виртуальное окружение, выполните в терминале команду:

    ".venv\\Scripts\\python.exe" -m pip install ptvsd
    

    Установка модуля ptvsd:

    Установка модуля ptvsd
  2. В папках, куда установлена Аксиома.ГИС, надо найти скрипт startaxioma.py, поднимающий Аксиому.ГИС из python, и скопировать его в папку с плагином. Обычно он находится в директории ./Axioma.GIS/share/axioma/python_samples. В последней версии он выглядит так:

    import axioma.app
    import axioma.gui
    import sys
    
    '''
    Запуск аксиомы как приложения из среды питон. Например, PyCharm
    '''
    
    if __name__ == '__main__':
            a = axioma.app.AxiomaApplication(sys.argv)
            gui = axioma.gui.Gui(a)
            gui.initialize()
    
            mainWindow = axioma.app.MainWindow.create(gui)
    
            mainWindow.show()
            sys.exit(a.exec())
    

    Файл startaxioma.py:

    Файл startaxioma.py
  3. В скопированном файле startaxioma.py нужно добавить 4 строчки после условия «if» (строка с функцией «print» необязательна):

    import axioma.app
    import axioma.gui
    import sys
    
    '''
    Запуск аксиомы как приложения из среды питон. Например, PyCharm
    '''
    
    if __name__ == '__main__':
    
            import ptvsd
            print("Waiting for debugger attach")
            ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True)
            ptvsd.wait_for_attach()
    
            a = axioma.app.AxiomaApplication(sys.argv)
            gui = axioma.gui.Gui(a)
            gui.initialize()
    
            mainWindow = axioma.app.MainWindow.create(gui)
    
            mainWindow.show()
            sys.exit(a.exec())
    

    Дополненный файл startaxioma.py:

    Дополненный файл startaxioma.py
  4. В папке .vscode в файле launch.json необходимо создать новую конфигурацию:

    {
            "name": "Python: Attach",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "localhost",
            "pathMappings": [
                    {
                            "localRoot": "${workspaceFolder}",
                            "remoteRoot": "."
                    }
            ]
    }
    

    Новая конфигурация для отладки:

    Новая конфигурация для отладки
  5. Теперь при запуске скрипта startaxioma.py перед открытием главного окна Аксиомы.ГИС будет происходить остановка до того момента, пока не будет запущена конфигурация отладки «Python: Attach» во вкладке Debug. После запуска этой конфигурации при старте плагина из интерфейса запущенной скриптом Аксиомы.ГИС все функции отладки, такие как точки останова, в коде этого плагина будут работать.


Теперь вы можете использовать MS Visual Studio Code для отладки плагинов в среде Аксиомы.ГИС.