尝试将Python与Docker集成。获取cod的输入部分时出错

2024-03-28 17:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常简单的python脚本。我想把它用在码头集装箱里。你知道吗

Python文件(计算机.py)你知道吗

import datetime
print("Welcome to virtual assistant.")
name = input("What is your name? ")
print("Welcome " + name)
def time():
print(datetime.datetime.now())
command = input("Would you like to know the time " + name + "?")
if command == "yes":
print(time())

我的docker文件是这样的

FROM python:3

ADD computer.py /

CMD [ "python", "./computer.py" ]

然后我跑了

docker build -t python-barcode .

那么

run python-barcode

我得到这个错误

Traceback (most recent call last):
  File "./computer.py", line 4, in <module>
    name = input("What is your name? ")
EOFError: EOF when reading a line
Welcome to virtual assistant.
What is your name? %

它似乎一直运行代码直到我请求输入?甚至不知道是什么原因造成的。任何帮助都将不胜感激。你知道吗


Tags: 文件tonamepyinputyourdatetimetime
2条回答

您应该使用-i和-t以交互模式运行容器

docker run -it python-barcode

当您使用docker run运行容器时,stdin在默认情况下是未连接的,因此任何尝试读取交互式输入的操作都将失败。你可能想跑:

docker run -it python-barcode

-i保持stdin连接,-t分配一个tty,这是您通常想要的交互输入。你知道吗

相关问题 更多 >