我想使用python 3.x
和pip3
在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
答案 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 &&\
这些调用永远不会成功,因为sys
,threading
,time
和logging
是内置模块或标准模块,无法从PyPI安装。而且没有这样的模块paho.mqtt.client
;也许您是说paho-mqtt
?
关于错误 py3-pip3(丢失):要求:world [py3-pip3] :需求中的[py3-pip3]
表示该软件包已安装了额外的要求。 world似乎没有多余的东西;实际上它根本没有任何额外功能。