如何在Ubuntu Docker镜像中安装Python2.7.5?

4

我有一个特定的要求,需要在Ubuntu中安装Python 2.7.5,我可以无问题地安装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: 无法通过正则表达式找到任何软件包 'python2.7.5'

我希望安装Python 2.7.5及相关的PIP,应该怎么做?


当你说“它抛出以下错误”时,实际上是什么生成了你展示的PNG文件?你能否配置该工具使用更好对比度的颜色,或者更好的是,删除图像并用文本错误消息替换它?你能将Dockerfile减少到一个[mcve]吗?例如,安装mssql部分是否与Python安装问题相关? - David Maze
更新了问题。 - One Developer
2个回答

7

此版本已不再存在于官方镜像站点中。

该版本发布于2013年。

因此,自那时以来,同时让pythonpip一起工作变得具有挑战性。

在CentOS 7上安装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" ]

根据评论请求的Python 2.7.9版本及pip

您可以使用此Dockerfile构建包含pip的Python。

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" ]

@MugilKarthikeyan,是的,我希望如此,请查看我的更新答案。 - Etienne Dijon
/bin/sh: 1: pip: 找不到命令 - One Developer
使用UBUNTU_VERSION=18.04构建docker时,打印Python版本后出现错误“/bin/sh: 1: pip: not found”,构建失败。 - One Developer
1
@MugilKarthikeyan,是的...,我怀疑libssl-dev版本对于Python 2.7.9来说太新了。因此,pip没有被收集和安装。 - Etienne Dijon
让我们在聊天中继续这个讨论 - One Developer
显示剩余4条评论

1
最简单的解决方案:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar xzvf Python-2.7.5.tgz
cd Python-2.7.5
./configure
make
sudo make install

安装完成后将安装的Python设置为默认版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接