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