docker中的python3和pip3

时间:2019-01-16 07:22:58

标签: python docker pip

我想使用python 3.xpip3在docker中安装一些python库。我使用以下命令来执行此操作,但尚未安装。

FROM alpine:latest

RUN apk add python3 py3-pip3 && \
pip3 install --upgrade pip3 && \
pip3 install wget &&\
pip3 install sys &&\
pip3 install threading &&\
pip3 install time &&\
pip3 install requests &&\
pip3 install paho-mqtt &&\
pip3 install logging &&\
rm -rf /var/cache/apk/*

COPY NumSide.py /home/mehdi/Download/NumSide.py

CMD ["python3","/home/mehdi/Download/NumSide.py"]

下面,我得到了错误:

  

错误:无法满足的约束条件:py3-pip3(缺失):要求:   world [py3-pip3]命令'/ bin / sh -c apk添加python3 py3-pip3 &&   pip3 install-升级pip3 && pip3安装wget && pip3安装系统   && pip3安装线程&& pip3安装时间&& pip3安装请求   && pip3安装paho.mqtt.client && pip3安装日志&& rm -rf   / var / cache / apk / *'返回了非零代码:1

3 个答案:

答案 0 :(得分:3)

程序包名称为py3-pip 不是 py3-pip3

答案 1 :(得分:2)

如果没有其他考虑,请遵循Dockerfile,我建议您仅使用python:3-alpine基本映像。它基于alpine Linux,也基于您的Linux,并且已经包含Python 3内容:

Dockerfile

FROM python:3-alpine

RUN python -m pip install --upgrade pip

RUN pip3 install requests paho-mqtt

COPY NumSide.py /home/mehdi/Download/NumSide.py

CMD ["python","/home/mehdi/Download/NumSide.py"]

否则,请考虑在安装前使用apk update更新软件包列表。

答案 2 :(得分:0)

pip3 install wget

确定要使用Python的wget,而不要使用系统wget吗?

pip3 install sys &&\
pip3 install threading &&\
pip3 install time &&\
pip3 install requests &&\
pip3 install paho.mqtt.client &&\
pip3 install logging &&\

这些调用永远不会成功,因为systhreadingtimelogging是内置模块或标准模块,无法从PyPI安装。而且没有这样的模块paho.mqtt.client;也许您是说paho-mqtt

关于错误 py3-pip3(丢失):要求:world [py3-pip3] :需求中的[py3-pip3]表示该软件包已安装了额外的要求。 world似乎没有多余的东西;实际上它根本没有任何额外功能。