python - 用python多处理新终端窗口
问题描述
我正在使用多处理,我想问是否有一些选项可以在 Ubuntu 中使用新的终端窗口创建新进程我有 3 个进程同时启动,但我希望它们在每个单独的终端中得到结果谢谢
解决方案
不。遗憾的是,没有*方法可以在 python 中做你想做的事,因为 python 无法控制它正在运行的终端。
我认为你想要的是将消息与不同的进程分开,这样你就可以看到发生了什么。我有时为此做的(仅在测试中!)是让每个进程记录到不同的文件,然后在三个终端窗口中观察这三个文件。您可以在 bash 中使用watch
甚至是一个简单的循环来执行此操作:while
watch -n 3 "cat /my/output/file" # or:
while true; do cat /my/output/file; sleep 3; done
当然你可以cat
用更有用的东西代替,也许tail
. 或者您可以只在具有自动恢复功能的文本编辑器中打开输出文件(例如带有 的 Emacs M-x auto-revert-mode
)。这在内部执行完全相同的操作——轮询文件以进行更改并在需要时进行更新。
我还真的建议您logging
在代码中使用,并为每个并行函数提供它自己的记录器(名称源自函数的参数)。(使用小类而不是函数会更容易)。这样以后您可以将所有输出发送到一个文件,如果出现问题,您可以轻松找出哪个运行失败并仅从该运行中提取信息(使用 grep!)。我在并行模糊匹配代码中使用这种方法(实际上是用于匹配音乐库),当您需要深入了解一些奇怪的结果是如何发生时,它是非常宝贵的。
*好吧,我敢肯定有一些可怕的方法来控制某些特定的终端并输出到它,但这不是你的意思。
推荐阅读
- javascript - 使用 Express API 和 React 前端防止 CSRF
- android - 如何在列表视图中使用查看器?
- flutter - Flutter TextField 禁用输入
- python - Python imaplib 库 mail.fetch,为什么我们要硬编码 response[0][1]?
- quarkus - 为什么quarkus使用hibernate响应式操作数据库,查询方式不使用数据库连接池
- keras - ValueError:未知层:带有 pyspark udf 的 CRF
- reactjs - Jest React - 否则未采取路径
- c# - 为什么 c# 只验证我的一些必填字段
- html - 为 owl-carousel 中使用的所有卡片设置相同的卡片高度
- node.js - 如何检查 currentPassword 以允许用户更改密码