我将 MagicDraw 用于使用 UML 和 SysML 的基于模型的系统工程 (MBSE)。我知道有一个基于 Java 的 API,该工具主要是用它编写的,但我想使用 Python 与我的模型交互。
是否有使用 Python 访问 MagicDraw 的 API 包装器或其他方法?
我将 MagicDraw 用于使用 UML 和 SysML 的基于模型的系统工程 (MBSE)。我知道有一个基于 Java 的 API,该工具主要是用它编写的,但我想使用 Python 与我的模型交互。
是否有使用 Python 访问 MagicDraw 的 API 包装器或其他方法?
MagicDraw 开发人员指南(当前适用于 v19.0-SP2)提供有关其 OpenAPI 的信息,该 API 支持Jython ,这是 Python 的 Java 实现。
OpenAPI 实现允许编写可从任何 MagicDraw 查询调用的 MagicDraw 脚本(例如,表范围内的表达式、表自定义列定义和 Legend Adornments 中的查询)。
OpenAPI 文档中有关于 Jython 脚本的信息。
Python 开发的核心是 CPython,它主要使用 C 语言并编译为给定的目标,如 C。Jython 端口与 Java 兼容,并以 Java JVM 为目标,而不是为特定平台编译。
这允许直接在 Java 中将 Python 的 Jython 解释器作为类对象运行,并编写直接在 JVM 上运行的 Jython 脚本。
Jython 目前仅支持 Python 2.7。过去一直在开发用于 Python 3.5 的 Jython,尽管它目前正在“休息”,如本 SO 回答中所述