我在节点红色中有一个执行节点来执行“lxterminal python3 code.py”。我想在前台运行脚本,因为我使用 cv2.imshow。 Node-red 只是在后台执行它,所以我看不到相机输出。
此节点是流的最后一个节点。我想打开一个具有 opencv 依赖项的 python 脚本来检测对象并在屏幕上显示相机输出。
错误信息:
(lxterminal:5169): Gtk-WARNING **: cannot open display:
提前致谢
Node-red 在启动时由用户 pi
自动启动
最佳答案
我猜测 Node-RED 作为服务运行,在启动时启动,因此它无法访问 X-Windows 环境。
这是因为当它作为服务运行时,X-Windows 可能没有运行,或者可能没有用户登录。
从 Node-RED 运行 GUI 代码确实不是它的设计目的,即使它是流程中的最后一个节点,它也会无限期地阻止该节点。
如果您真的、真的需要这样做(您真的、真的不需要),那么您应该从首先设置 DISPLAY
环境变量的 shell 脚本运行 python 代码。像这样:
#/bin/sh
export DISPLAY=:0.0
python foo.py
这将允许 python 应用程序连接到 X。但请记住,如果 pi 用户当时未登录,这将失败。
关于python - 如何从 node-red 打开 CV2.frame 窗口? - 执行脚本到 UI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607695/