python - 如何在 Ubuntu docker 镜像中安装 Python2.7.5?

标签 python docker python-2.7 ubuntu

我有安装 的具体要求Python 2.7.5 在 Ubuntu 中,我可以毫无问题地安装 2.7.18
下面是我的dockerfile

ARG UBUNTU_VERSION=18.04
FROM ubuntu:$UBUNTU_VERSION

RUN apt-get update -y \
    && apt-get install -y python2.7.x \
    && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["python"]
但是,如果我将其设置为 python2.7.5
ARG UBUNTU_VERSION=18.04
FROM ubuntu:$UBUNTU_VERSION

RUN apt-get update -y \
    && apt-get install -y python2.7.5 \
    && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["python"]
它抛出以下错误

E: Couldn't find any package by regex 'python2.7.5'


我想安装 Python 2.7.5 以及相关的 PIP,我该怎么办?

最佳答案

此版本不再在规范镜像中可用。
它已于 2013 年发布。
结果,同时拥有 pythonpip从那时起一起工作是具有挑战性的。
centos7 上的 Python 2.7.5 + PIP
如果 ubuntu 可能是最简单的方法不是要求。

ARG CENTOS_VERSION=7
FROM centos:$CENTOS_VERSION

# Python 2.7.5 is installed with centos7 image
# Add repository for PIP
RUN yum install -y epel-release

# Install pip
RUN yum install -y python-pip

RUN python --version

ENTRYPOINT [ "python" ]
Ubuntu 上的 Python 2.7.5
我已经能够从源代码安装它
安装不成功pip :
https://bootstrap.pypa.io/pip/2.7/get-pip.py
ARG UBUNTU_VERSION=18.04
FROM ubuntu:$UBUNTU_VERSION

ARG PYTHON_VERSION=2.7.5

# Install dependencies
# PIP - openssl version > 1.1 may be an issue (try older ubuntu images)
RUN apt-get update \
  && apt-get install -y wget gcc make openssl libffi-dev libgdbm-dev libsqlite3-dev libssl-dev zlib1g-dev \
  && apt-get clean

WORKDIR /tmp/

# Build Python from source
RUN wget https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz \
  && tar --extract -f Python-$PYTHON_VERSION.tgz \
  && cd ./Python-$PYTHON_VERSION/ \
  && ./configure --enable-optimizations --prefix=/usr/local \
  && make && make install \
  && cd ../ \
  && rm -r ./Python-$PYTHON_VERSION*

RUN python --version

ENTRYPOINT [ "python" ]
ubuntu 上的 Python 2.7.6 + pip
Ubuntu 14.04 仍然有镜像工作(多长时间???)。
Python 包真的很接近你的期望。
您可以尝试使用该脚本运行您的脚本。
ARG UBUNTU_VERSION=14.04
FROM ubuntu:$UBUNTU_VERSION

RUN apt-get update \
  && apt-get install -y python python-pip \
  && apt-get clean

RUN python --version

ENTRYPOINT [ "python" ]
Python 2.7.5 + pip,不工作,但可以在 ubuntu 上
这是我尝试过的,但没有成功。
ARG UBUNTU_VERSION=16.04
FROM ubuntu:$UBUNTU_VERSION


# Install dependencies
RUN apt-get update \
  && apt-get install -y wget gcc make openssl libffi-dev libgdbm-dev libsqlite3-dev libssl-dev zlib1g-dev \
  && apt-get clean

WORKDIR /tmp/

# Build python from source
RUN wget https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz \
  && tar --extract -f Python-$PYTHON_VERSION.tgz \
  && cd ./Python-$PYTHON_VERSION/ \
  && ./configure --enable-optimizations --prefix=/usr/local \
  && make && make install \
  && cd ../ \
  && rm -r ./Python-$PYTHON_VERSION*

# Build pip from source
RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py \
    && python get-pip.py

RUN python --version

ENTRYPOINT [ "python" ]
带有 pip 的 Python 2.7.9 - 根据评论中的要求
你可以使用这个 dockerfile,构建 python 包括 pip。
ARG UBUNTU_VERSION=16.04
FROM ubuntu:$UBUNTU_VERSION

ARG PYTHON_VERSION=2.7.9

# Install dependencies
RUN apt-get update \
  && apt-get install -y wget gcc make openssl libffi-dev libgdbm-dev libsqlite3-dev libssl-dev zlib1g-dev \
  && apt-get clean

WORKDIR /tmp/

# Build Python from source
RUN wget https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz \
  && tar --extract -f Python-$PYTHON_VERSION.tgz \
  && cd ./Python-$PYTHON_VERSION/ \
  && ./configure --with-ensurepip=install --enable-optimizations --prefix=/usr/local \
  && make && make install \
  && cd ../ \
  && rm -r ./Python-$PYTHON_VERSION*

RUN python --version \
  && pip --version

ENTRYPOINT [ "python" ]

关于python - 如何在 Ubuntu docker 镜像中安装 Python2.7.5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69295076/

相关文章:

php - 如何在Laravel 6中从父目录加载多个.env文件或加载.env

python - 对 Python 教程文档中一段的说明

python - Python 中具有多个分隔符的 "x.rsplit()"

python - 如何从 Tk Text() 对象中删除所有标签

php - Web 开发人员将哪些工具与 PHP、Ruby on Rails、Python 等一起使用?

amazon-web-services - Windows Server 2016 上的 Linux Docker 容器在 AWS 中构建服务器

python - 计算python中点的导数

docker - 为什么要使用 -t 来运行 Docker 容器?

python - 如何使用 PyArg_ParseTupleAndKeywords 来解析带有可选参数和关键字的元组?

Python 2.7 - 过滤目录内文件名中具有特定字符串的文件