如何在 alpine linux 上安装 python?

Cut*_*aca 48 python linux alpine-linux

如何在基于 alpine 的映像上安装 python3 和 python3-pip(不使用 python 映像)?

 $ apk add --update python3.8 python3-pip
 ERROR: unsatisfiable constraints:
   python3-pip (missing):
     required by: world[python3-pip]
   python3.8 (missing):
     required by: world[python3.8]
Run Code Online (Sandbox Code Playgroud)

小智 67

这是我在 Dockerfile 中用于 alpine 图像的内容:

# Install python/pip
ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python
RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools
Run Code Online (Sandbox Code Playgroud)

  • 我收到:`警告:忽略http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz:没有这样的文件或目录错误:无法满足的约束:python3(缺少): 需要: world[python3]` (4认同)
  • 有趣的是,不知道“python3 -m Ensurepip”存在。 (3认同)

Lin*_* H. 44

看这里:https : //pkgs.alpinelinux.org/packages 所以你要找的是python3py3-pip包。

在 dockerfile/etc 中使用的合适命令是:

apk add --no-cache python3 py3-pip
Run Code Online (Sandbox Code Playgroud)

--no-cache旗帜的解释

但是请注意,你需要添加社区资料库,因为py3-pip不存在main

  • 这是自“3.12”以来的正确方法 https://pkgs.alpinelinux.org/contents?file=pip3&path=&name=&branch=v3.12 (3认同)
  • @chovy 它是`python3-dev`,根据:[Alpine Package search: python3-dev*](https://pkgs.alpinelinux.org/packages?name=python3-dev*) (2认同)

Mon*_*rso 20

附加选项是在映像构建期间构建python:

FROM alpine:latest

# you can specify python version during image build
ARG PYTHON_VERSION=3.9.9

# install build dependencies and needed tools
RUN apk add \
    wget \
    gcc \
    make \
    zlib-dev \
    libffi-dev \
    openssl-dev \
    musl-dev

# download and extract python sources
RUN cd /opt \
    && wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz \                                              
    && tar xzf Python-${PYTHON_VERSION}.tgz

# build python and remove left-over sources
RUN cd /opt/Python-${PYTHON_VERSION} \ 
    && ./configure --prefix=/usr --enable-optimizations --with-ensurepip=install \
    && make install \
    && rm /opt/Python-${PYTHON_VERSION}.tgz /opt/Python-${PYTHON_VERSION} -rf
                                                                                                                                                                                                                                               # rest of the image, python3 and pip3 commands will be available
Run Code Online (Sandbox Code Playgroud)

此代码片段从源下载并构建指定版本的 python(与 pip 一起)。这可能有点矫枉过正,但有时可能会派上用场。


小智 9

而不是python3-pip安装py3-pip

apk add --update python3 py3-pip
Run Code Online (Sandbox Code Playgroud)

  • 有什么不同? (6认同)

小智 8

你可以试试这个命令

apk 添加python3

  • 这对我来说适用于“image: openjdk:14-alpine”,谢谢! (2认同)

Vin*_*ler 5

您也可以使用提供 alpine 标签的 python 官方镜像。您可能会获得最先进的 python 安装:

例如:

FROM python:3-alpine