我有一组 Python 库(Maya Python API),我想在 C# 中有一些包装器。目前能够通过构造字符串并将它们发送到 python 引擎来调用 python 代码,但更愿意在 C# 中使用智能感知/正确的 python 函数签名。这样的工具存在吗?或者有没有更好的方法将 python 集成到 C# 工作流中?
问问题
726 次
1 回答
1
dotnet API 实际上是围绕与 C++ api 相同的模型设计的:您将编写代码来操作正在运行的 Maya,然后以用户可以直接调用或使用工具和菜单调用的 Mel 命令的形式提供一个瘦包装器。不幸的是,这意味着从插件内部调用脚本需要通过脚本层来回往返,并伴随着转换成本。另外,您将不得不编写 C# 来解析 python 或 mel 中的命令结果并决定如何做出反应,即使它有效,这也将是一场噩梦。
将 C# 代码设计得更小可能会更好。期望通过脚本控制的自包含部分(可以是 mel 或 Python——当您的插件公开 commnads 时,您可以“免费”获得它)。
Visual Studio 的 Python 工具确实为 Visual Studio 中的 Python 代码提供了一定程度的自动完成功能,但我认为它不会在 .CS 文件中工作。如果你真的需要提供大量的脚本(而不是坚持极简设计,我仍然认为它更好)你可以维护一个单独的 PTVS 项目来创建 python 基础设施作为子项目,然后将文件打包它在 C# 插件中创建为资源。然而,除了你无法避免的事情——比如(嘘!嘶嘶声!)AETemplates——理智的策略是将插件视为从脚本调用的高性能函数的提供者,而不是相反。
于 2015-12-09T18:03:28.767 回答