【问题标题】:Downloading Pip Packages in Docker Container在 Docker 容器中下载 Pip 包
【发布时间】:2021-03-04 15:58:11
【问题描述】:

我正在尝试在 Dockerfile/容器中使用 Pip3 下载 Pika 包。我当前的 Dockerfile 如下所示:

FROM rabbitmq

#install Python
RUN apt-get update &&\
    apt-get install -y \
    python3-pip

#Create new user
RUN useradd -ms /bin/bash user
USER user
WORKDIR /home/user

#Install Pika
RUN pip3 install pika

RUN mkdir videos

COPY . .

CMD ["python3", "ffmpeg.py"]

我得到的输出声称一切正常并且一切都安装成功。但是容器由于错误而立即退出:

Traceback (most recent call last):
File "ffmpeg.py", line 1, in <module>
import pika, sys, os
ModuleNotFoundError: No module named 'pika'

如果我通过 SSH 连接到容器并手动下载 Pika:

pip3 install pika

然后运行 ​​python 文件,一切正常。但由于某种原因,Dockerfile 无法使用完全相同的命令进行安装。

到目前为止,我已经在this page 上尝试了几乎所有解决方案

我正在运行 Ubuntu 版本 20.04.1 和 Docker 版本 20.10.2。

还有什么我可以尝试的吗?

【问题讨论】:

  • 尝试运行 python3 -m pip install pika
  • @RamanSailopal 同样的问题。作为 Python 新手,这两个命令有什么区别?

标签: python docker ubuntu rabbitmq dockerfile


【解决方案1】:

所以我想我找到了解决方案。我更改了我的 Dockerfile 以在创建新用户之前安装我的 Pika。所以它现在看起来像这样:

FROM rabbitmq

#install Python
RUN apt-get update &&\
    apt-get install -y \
    python3-pip

#Install Pika
RUN python3 -m pip install pika

#Create new user
RUN useradd -ms /bin/bash user
USER user
WORKDIR /home/user

RUN mkdir videos

COPY . .

CMD ["python3", "ffmpeg.py"]

这解决了我无法识别 Pika 的问题,但现在在构建图像时我得到了这个:

The directory '/var/lib/rabbitmq/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

映像仍在构建并且文件现在运行,所以不确定新错误有什么样的影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-14
    • 1970-01-01
    • 2015-04-24
    • 2020-07-26
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多