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

时间:2017-12-21 12:28:43

标签: python docker containers

我有两个python文件Person lucene-memory-XX.jar,内容低于。

my_script.py

my_script.py

test.py

test.py

当我执行#!/usr/bin/python3 import os import sys sys.path.append("/home/user/test") import test as count data = count.function() print(data) 时,我得到以下结果:

#!/usr/bin/python3

import time

def function():
        print("This is function")
        return "test"

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

This is function
test

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

my_script.py

最初我认为容器会自动查找test.py并执行其功能但不是。我该如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

好的,我会根据以下评论添加更多说明。 您的文件位于本地系统的任何位置与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" ]

然后你可以从脚本中删除你的路径错误。

所以最终的my_script.py看起来像是:

#!/usr/bin/python3

import os
import sys
import test as count

data = count.function()
print(data)