web-dev-qa-db-ja.com

python3パッケージをalpineにインストールする際のエラー

現在、Alpine:3.7からイメージを構築しています。

私が問題を抱えているパッケージは2つあります。

  • 振り子(具体的にはpython-dateutilsパッケージ)
  • service_identity(具体的にはattrsパッケージ)

私が受け取るエラーは次のとおりです。

要件setuptoolsを満たすバージョンが見つかりませんでした(バージョン:から)setuptoolsに一致するディストリビューションが見つかりませんでした

注:すべてのパッケージは、pipダウンロードを使用してディレクトリに事前キャッシュされます。

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

....

libffi-dev、libressl-devなどのdevパッケージ.

7
Diego Gallegos

どうやらpipをアップグレードするとき:

pip3 install --upgrade pip setuptools

Pipのアップグレードを削除し、インストールは機能しました。今、私はAlpineでpipをアップグレードする正しい方法を研究しており、このチェックを行う 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 && \

ちょうどpipコマンドを呼び出すときに、pip3が参照されていることを確認しますpythonおよびシステムバイナリのディレクトリでシンボリックリンクを実行します。

4
Diego Gallegos

質問でビルドする開発パッケージの完全なリストについてはわかりませんが、次のようにする必要があります: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
4
Nickolay