首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在macos上运行X11应用程序

在macos上运行X11应用程序
EN

Stack Overflow用户
提问于 2020-06-23 17:39:36
回答 1查看 538关注 0票数 1

我正试图通过docker将opencv连接到macos主机中的外部显示器。我用的是x石英和socat:

代码语言:javascript
复制
open -a XQuartz
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

所以它正确地听着:

代码语言:javascript
复制
ip-192-168-1-168:workoutdj loretoparisi$ lsof -i TCP:6000
COMMAND   PID         USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
socat   40381 loretoparisi    5u  IPv4 0x9d69a8efeca8e83f      0t0  TCP *:6000 (LISTEN)

然后(在不同的窗口中运行),我尝试了不同的方法将显示连接到码头:

代码语言:javascript
复制
docker run  -e DISPLAY=host.docker.internal:0 --rm -it -v $(pwd):/app facemaskdetect bash
$ python facemaskdetect/detector.py -i examples/example_01.png -o cam
[INFO] computing face detections...
No protocol specified
: cannot connect to X server host.docker.internal:0

或者:

代码语言:javascript
复制
docker run  -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --rm -it -v $(pwd):/app facemaskdetect bash
$ python facemaskdetect/detector.py -i examples/example_01.png -o cam
[INFO] computing face detections...
: cannot connect to X server /private/tmp/com.apple.launchd.qIcIi1ayqO/org.macosforge.xquartz:0

我也尝试过通过这个通过xhost跟踪

代码语言:javascript
复制
export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
xhost +$IP
xhost +local:docker
docker run --rm -it -e DISPLAY=$IP:0 -e XAUTHORITY=/.Xauthority --net host -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/.Xauthority:/.Xauthority  -v $(pwd):/app facemaskdetect bash
$ python facemaskdetect/detector.py -i examples/example_01.png -o cam
[INFO] computing face detections...
: cannot connect to X server :0

推荐的项目是这里,更多关于这个问题的这里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-29 05:20:32

因为方法二使用$IP,所以可以将它绑定到socat以访问X11显示。socat TCP-LISTEN:6000,bind=$IP,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62540669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档