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)