【问题标题】:Can't see python libs inside Docker image在 Docker 映像中看不到 python 库
【发布时间】:2018-03-14 22:32:23
【问题描述】:

我想用 python 3.6 和少量依赖项构建 Docker 容器。 这是我的 Dockerfile:

FROM noondotcom/alpine-3.6-python-3.6-grpc

COPY requirements.txt /requirements.txt
RUN python3.6 -m pip install --upgrade pip
RUN python3.6 -m pip install -r requirements.txt
CMD ["python3.6", "-m requests"]

docker build -f Dockerfile . 执行没有错误,我看到 requirements.txt 中的所有库都已安装

但是当我运行 docker run 时,我收到“没有名为请求的模块”消息。

我该如何解决这个问题?

【问题讨论】:

  • 您是否尝试过进入容器并查看您的文件是否正确复制? docker run -it <image-name>。您可能必须注释掉最后一行以进行调试。
  • @HafizTemuri 当我运行你的命令时,我得到了带有所有需要库的 python 解释器,所以我可以在 REPL 中导入和使用它们

标签: python python-3.x docker dockerfile


【解决方案1】:

请求库没有文件__main__.py。 并且需要写CMD ["python3.6", "-m", "requests"]

如果包没有文件__main__.py 命令python -m <package> 不起作用

【讨论】:

  • > 请求库没有文件 main.py。并且需要写 CMD ["python3.6", "-m", "requests"]。有效!谢谢!自从我构建图像以来,它看起来一切正常,但检查错误
【解决方案2】:

请注意,docker 中的 CMD 语句在容器构建后执行。这就是您的容器实际上应该执行的操作。

您收到该错误是因为 requests 不可执行,因为它没有 main。 requests 是在声明 import requests 之后由某些 python 模块使用的库。也许你的实际脚本应该使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-12
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多