Docker环境Ubuntu20.04安装Python3.10版本
原创大约 1 分钟
背景和环境说明
随着
Python3.8+
不在维护,以及新的部署包逐渐不在支持Python3.8+
,所以新的开发程序需要再Python3.10+
版本,或其他版本上运行。
在开发完应用后,我需要打包成docker image
, 用的基础镜像是nvidia/cuda:11.7.1-cudnn8-devel-ubuntu20.04
。默认Python环境仍然是Python3.8+
。故本教程主要在此镜像基础上安装Python3.10版本。
原则上同样适用于其他Ubuntu等Linux系统
安装资源下载
Python各版本下载地址 Python官网
方案一,如果您的网络没有限制推荐此方案
- 安装脚本
RUN apt-get update \
&& apt-get install -y git curl wget python3.10 libpython3.10-dev python3-pip \
&& apt-get install -y libgl1-mesa-glx libglib2.0-0 \
&& ln -sf /usr/bin/python3.10 /usr/bin/python3 \
&& ln -sf /usr/bin/python3.10 /usr/bin/python \
&& apt-get autoclean && rm -rf /var/lib/apt/lists/*
方案二,源码安装
- 安装脚本
ADD https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz /usr/local/Python-3.10.14.tgz
RUN tar -zxvf Python-3.10.14.tgz && cd Python-3.10.14 && apt-get update \
&& apt-get install -y gcc g++ make libncurses5-dev libgdbm-dev liblzma-dev libz-dev libffi-dev libreadline-gplv2-dev tk-dev libc6-dev zlib1g-dev \
&& apt-get install -y checkinstall libdb-dev libexpat1-dev libncursesw5-dev libreadline-dev libsqlite3-dev libssl-dev libtinfo-dev libbz2-dev build-essential \
&& ./configure --prefix=/usr/local --enable-optimizations --with-ensurepip \
&& make -j4 && make install && cd ../ && rm -rf Python-3.10.14* \
&& apt-get autoclean && rm -rf /var/lib/apt/lists/*
验证
python3 -V
pip3 -V
单独安装pip
bash脚本
curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py
python3 get-pip.py
rm get-pip.py
ln -sf /usr/local/bin/pip3 /usr/bin/pip
Dockfile文件
RUN curl https://bootstrap.pypa.io/get-pip.py --output get-pip.py \
&& python3 get-pip.py && rm get-pip.py \
&& ln -sf /usr/local/bin/pip3 /usr/bin/pip \
&& apt-get autoclean && rm -rf /var/lib/apt/lists/*