python - 如何与后台 Python 实例通信?

标签 python linux testing vim background-process

环境序言:

我在 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/

相关文章:

.net - 使用 xbuild 在 ubuntu 上使用 SandcaSTLe HelpFileBuilder 生成 .NET 文档

linux - 这里的 Bash 脚本文件 FTP

linux - .exe 文件如何与 Windows 内核交互? Linux .bin 文件相同

javascript - 如何在 IE 和 PhantomJS 中使用 Typescript 创建 KeyboardEvent

python - 在 asyncio 中的 KeyboardInterrupt 之后等待任务完成

Python CSV 读取器/写入器处理引号 : How can I wrap row fields in quotes?(获取三重引号作为输出)

python - 有人可以解释逻辑和 bool 之间的区别吗在这种情况下,

python - 可选位置参数的 Argparse 值

reactjs - 在 React.js 中使用 Jest 模拟 Bing map API

python - 在测试中覆盖 Django 缓存设置