ModuleNotFoundError:在docker python中没有模板名称<name>

我有两个python文件my_script.py test.py与下面的内容。

my_script.py

 #!/usr/bin/python3 import os import sys sys.path.append("/home/user/test") import test as count data = count.function() print(data) 

test.py

 #!/usr/bin/python3 import time def function(): print("This is function") return "test" 

当我执行my_script.py ,我得到以下结果:

 This is function test 

我使用Dockerfile创build了my_script.py docker镜像:

 FROM python:3 ADD my_script.py / CMD [ "python3", "./my_script.py" ] 

但是当我运行它的容器时,我得到一个错误:

 Traceback (most recent call last): File "./my_script.py", line 13, in <module> import test as count ModuleNotFoundError: No module named 'test' 

最初我以为容器会自动查找test.py,并执行它的function,但不是。 我该如何解决这个问题。

好的,我会根据下面的评论添加一些更多的说明。 无论您的文件在您的本地系统上与您的docker集装箱内部的位置无关。

因此,在你可以在容器中运行东西之前(这本质上是“另一个服务器”),你需要将文件从本地机器复制到容器中。

要实现你想要实现你的Dockerfile需要看起来像:

 FROM python:3 RUN mkdir -p /home/user/test ADD my_script.py /home/user/test/ ADD test.py /home/user/test/ CMD [ "python3", "/home/user/test/my_script.py" ] 

然后你可以从你的脚本中删除你的path。

所以最后my_script.py看起来像这样:

 #!/usr/bin/python3 import os import sys import test as count data = count.function() print(data)