2017-05-26 55 views
1

我正在尝试配置一个Docker镜像,以便用户可以输入“docker run image”并弹出一个窗口来选择输入文件。我在创建Docker镜像时尝试使用Tkinter,但是当它尝试加载Tkinter时Python脚本出错。Docker Python文件输入选择器

由于Tkinter的没有工作,我想用刚切换到正常输入查询:

path= input('Input the file path:\n') 

但现在我得到一个“的EOFError:读一本线的时候EOF”当它到达输入( )线。

我Dockerfile如下

FROM python:3 
ADD script.py/
RUN pip install xlrd 
RUN pip install numpy 
RUN pip install matplotlib 
CMD [ "python", "./script.py" ] 

任何想法,为什么发生这种情况?我对使用Docker非常陌生,所以任何帮助都会非常感谢:)

回答

1

您需要运行容器docker run -ti image以确保它在连接终端的情况下以交互模式运行。

运行X11 GUI应用程序有点棘手,因为您需要将容器访问到显示器。 This blog post更详细地描述了该过程。

+0

它现在允许输入,但它不会允许matplotlib打开剧情的显示。 – DLee

+0

@DLee我用一个应该有帮助的链接更新了答案。 –

+0

在主机上运行'xhost +'并尝试添加:'-e DISPLAY -v /tmp/.X11-unix:/ tmp/.X11-unix'到'docker run'。 –