环境序言:
我在 Vim 中为 Linux 上的 Maya 编写 Python 代码。我正在使用 nose 进行测试发现和执行,并且我正在使用它的属性插件来装饰仅限 Maya 的测试类。我在 Vim 中有映射以在常规 Python 中运行非 Maya 测试,并通过 Maya 的 mayapy
可执行文件进行 Maya 测试,这使我可以访问场景和 maya.cmds 模块。
实际问题:
每次我点击 in-Maya 测试 Vim 映射时,mayapy
需要 6 秒才能启动。这真的很乏味。非 Maya 测试的发生速度与我点击它们的映射一样快。它帮助我更多地从 Maya 中抽象出来,以避免那种微小的、整天的痛苦,但我仍然希望它消失。 6秒开始感觉很长。在 Vim 中有一些异步工作的技巧,但我不想在没有看到我的测试是否通过之前继续前进。我问过 Autodesk(Maya 的制造商),他们说没有办法绕过启动时间。
问题:
我认为我想要的是在后台启动mayapy
,然后当我点击我的Vim映射时,让它连接到等待的Python实例并调用nose.run()
命令。我觉得 mkfifo
是要走的路,但我不确定细节。我该怎么做(通过 mkfifo
或其他方式)?
最佳答案
我假设 mayapy 就像一个 repl,您可以像上面提到的 nose.run()
一样向它输入命令。如果是这样,我建议使用 vim 插件 tslime这使您能够将内容从 vim 缓冲区发送到另一个 tmux Pane /窗口。
关于python - 如何与后台 Python 实例通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852054/