pythondockerpython-2.7ubuntu

How to install Python2.7.5 in Ubuntu docker image?


I have specific requirement to install Python 2.7.5 in Ubuntu, I could install 2.7.18 without any issues

Below is my 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"]

however if I set it to 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"]

it is throwing the following error

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

I want to install Python 2.7.5 along with relevant PIP, what should I do?


Solution

  • This version is no longer available in canonical mirrors.

    It has been released in 2013.

    As a result, having both python and pip working together since then is challenging.

    Python 2.7.5 + PIP on centos7

    It may be the simplest way if ubuntu is not a requirement.

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

    Python 2.7.5 on ubuntu

    I've been able to install it from source

    It has not been a success to install 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" ]
    

    Python 2.7.6 + pip on ubuntu

    Ubuntu 14.04 still has mirrors working (how long ???).

    Python packages are really close to your expectations.

    You may try to run your scripts with that one.

    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, not working but could on ubuntu

    Here is what I've tried with no success.

    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 with pip - as requested in comment

    You can use this dockerfile, building python includes 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" ]