在alpine中安装python3软件包时出错

时间:2018-04-18 16:54:53

标签: python docker alpine

我目前正在建立阿尔卑斯山的图像:3.7。

有两个我遇到问题的软件包:

  • pendulum(特别是 python-dateutils 包)
  • service_identity(特别是 attrs 包)

我收到的错误是:

  

无法找到满足要求setuptools的版本(来自版本:)没有找到setuptools的匹配分发

注意:所有软件包都使用pip download预先缓存在目录中。

dockerfile如下所示:

RUN apk add --no-cache --virtual .build-deps <dev packages>
 && apk add --no-cache --update python3
 && pip3 install --upgrade pip setuptools

RUN pip3 install -f ./python-packages --no-index -r requirements.txt ./python-packages/pkgs

....

dev-packages,如libffi-dev,libressl-dev等。

2 个答案:

答案 0 :(得分:2)

显然在使用以下内容升级pip时

pip3 install --upgrade pip setuptools

我删除了pip升级和安装工作。现在,我一直在研究升级pip on alpine的正确方法,并在github repo中找到了一个Dockerfile来执行此检查:

if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \

通过在python和系统二进制文件上执行符号链接,可以确保在调用 pip 命令时引用 pip3 。目录。

答案 1 :(得分:1)

我不确定要在问题中构建的完整dev-package列表,但它应该是以下内容:g++(GNU C ++标准库和编译器),python3-dev (python3开发文件),libffi-dev(libffi开发文件)和openssl-dev(用于SSL v2 / v3和TLS v1开发文件的工具包)。

Dockerfile是:

FROM alpine:3.7
RUN apk add --no-cache --virtual .build-deps g++ python3-dev libffi-dev openssl-dev && \
    apk add --no-cache --update python3 && \
    pip3 install --upgrade pip setuptools
RUN pip3 install pendulum service_identity