web-dev-qa-db-fra.com

Erreur lors de l'installation des packages python3 en alpin

Je suis en train de construire une image d'Alpine: 3.7.

Il y a deux packages avec lesquels j'ai des problèmes:

  • pendule (spécifiquement python-dateutils package)
  • service_identity (spécifiquement attrs package)

L'erreur que je reçois est:

Impossible de trouver une version qui satisfait à l'exigence setuptools (à partir des versions:) Aucune distribution correspondante trouvée pour setuptools

Remarque: tous les packages sont pré-mis en cache sur un répertoire à l'aide du téléchargement pip.

Le dockerfile se présente comme suit:

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

....

packages de développement tels que libffi-dev, libressl-dev, etc.

7
Diego Gallegos

Apparemment, lors de la mise à niveau de pip avec:

pip3 install --upgrade pip setuptools

J'ai supprimé la mise à niveau de pip et l'installation a fonctionné. Maintenant, j'ai recherché la bonne façon de mettre à jour pip sur Alpine et j'ai trouvé un Dockerfile dans un github repo qui fait cette vérification:

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 && \

Ce qui garantit que pip3 est référé lors de l'appel de la commande juste pip par faire un lien symbolique sur python et les répertoires des binaires système.

4
Diego Gallegos

Je ne suis pas sûr de la liste complète des packages de développement à construire dans la question, mais elle devrait être la suivante: g++ (Bibliothèque et compilateur standard GNU C++), python3-dev (fichiers de développement python3), libffi-dev (fichiers de développement libffi) et openssl-dev (Boîte à outils pour les fichiers de développement SSL v2/v3 et TLS v1).

Dockerfile est:

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
4
Nickolay