在Dockerfile上运行安装python软件包

时间:2020-04-29 12:02:54

标签: python docker dockerfile balena

我是Docker的新手,目前正尝试通过安装python软件包及其库来创建Dockerfile,如下所示:

df_learn['col3']

但是,当我尝试推送此Dockerfile时,错误是通过

生成的
FROM balenalib/fincm3-debian-python:latest

# RUN install_packages git
RUN apt-get update && apt-get install python \
        && apt-get install pip3 \
        apt-get install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev \
        pip3 install pyaudio \
        pip3 install numpy \
        pip3 install matplotlib \
        pip3 install scipy \
        pip3 install librosa \

# Set our working directory
WORKDIR /usr/src/app

COPY Recorder.py /usr/src/app

# Recorder.py will run when container starts up on the device
CMD ["python","/usr/src/app/Recorder.py"]

3 个答案:

答案 0 :(得分:0)

在requirements.txt中移动python包并安装python3-pip可与python:3基本映像一起使用。

# RUN install_packages git
  RUN apt-get update \
   && apt-get install -y python \
   && apt-get install -y python3-pip

  RUN pip install -r requirements.txt

答案 1 :(得分:0)

您要查找的软件包称为python3-pip

接下来,您既需要&&(以分隔命令)又需要\(以继续命令行)。因此,总而言之,应该是:

FROM balenalib/fincm3-debian-python:latest

RUN apt-get update && apt-get install python && \
        apt-get install -y \
              python3-pip libportaudio0 libportaudio2 libportaudiocpp0 \
              portaudio19-dev && \
        pip3 install pyaudio numpy matplotlib \
             scipy librosa 

# Set our working directory
WORKDIR /usr/src/app

COPY Recorder.py /usr/src/app

# Recorder.py will run when container starts up on the device
CMD ["python","/usr/src/app/Recorder.py"]

答案 2 :(得分:0)

我相信此Dockerfile中存在多个问题,并且将所有命令与&& and \组合在一起时,您不知道哪个命令触发了错误。我建议将它们拆分以用于调试目的,当它们全部起作用时,您可以将它们放在一起。一旦理解了每个错误,就更容易检查和解决它们。这个问题有重要信息:how to install pip in docker

尝试一下:

1-程序包触发了Y / n个问题,请给-y以确保其通过

2-使用反斜杠指代新命令,应使用&&,反斜杠指代换行,可以使用\,然后使用&&

3- pip3libportaudio0软件包不存在。

E: Unable to locate package libportaudio0

我发现了这样的错误,即分割Dockerfile并消除了提到的问题

RUN apt-get update 
RUN apt-get install python -y\
        && apt-get install python3-pip -y
RUN apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev -y 
RUN pip3 install pyaudio numpy matplotlib \
             scipy librosa

如果要将命令放在一起:

RUN apt-get update \
        && apt-get install python -y \
        && apt-get install python3-pip -y \
        && apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev -y \
        && pip3 install pyaudio numpy matplotlib \
             scipy librosa

我还建议添加一个点子要求文件,以使事情更整洁。