Docker环境Ubuntu20.04安装Python3.10版本

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: Docker环境Ubuntu20.04安装Python3.10版本

背景和环境说明

随着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/*
目录
相关文章
|
19天前
|
Linux iOS开发 MacOS
【chat-gpt问答记录】python虚拟环境venv的简介及使用
【chat-gpt问答记录】python虚拟环境venv的简介及使用
24 2
|
19天前
|
Ubuntu C++ Docker
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
Docker的基本指令和HTML/PYTHON/C++的简单创建示例
|
7天前
|
分布式计算 并行计算 安全
在Python Web开发中,Python的全局解释器锁(Global Interpreter Lock,简称GIL)是一个核心概念,它直接影响了Python程序在多线程环境下的执行效率和性能表现
【6月更文挑战第30天】Python的GIL是CPython中的全局锁,限制了多线程并行执行,尤其是在多核CPU上。GIL确保同一时间仅有一个线程执行Python字节码,导致CPU密集型任务时多线程无法充分利用多核,反而可能因上下文切换降低性能。然而,I/O密集型任务仍能受益于线程交替执行。为利用多核,开发者常选择多进程、异步IO或使用不受GIL限制的Python实现。在Web开发中,理解GIL对于优化并发性能至关重要。
25 0
|
3天前
|
JSON 数据格式 Python
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
|
2天前
|
机器学习/深度学习 算法 数据挖掘
Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。
【7月更文挑战第5天】**Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。 - Python因丰富库(如TensorFlow, PyTorch, Keras, Pandas, NumPy)和生态而受青睐。 - 使用OpenAI Gym构建环境,如`gym.make('CartPole-v0')`。 - 选择模型,例如神经网络,定义策略如Q-Learning。 - 训练模型,调整智能体行为,如Q-Learning更新Q表。 - 最后评估模型性能,实现数据驱动决策。
11 3
|
8天前
|
Python Windows
Python 在 Windows 环境下的文件路径问题
在 Python 程序中,我们经常需要对文件进行操作。在 Windows 下,文件目录路径使用反斜杠“\”来分隔。然而,在 Python 代码中,反斜杠“\”是转义符,例如“\n”表示换行符、“\t”表示制表符。这样,如果继续使用“\”表示文件路径,就会产生歧义。
|
13天前
|
Python
Pycharm为Python项目配置环境不生效,解决办法
在PyCharm中,项目依赖配置更改后未生效。解决步骤包括:1) 查找`C:\Users\username\AppData\Roaming\JetBrains\PyCharm2022.2\options\jdk.table.xml`,2) 删除`<jdk></jdk>`标签内的旧配置内容,然后重启PyCharm以应用新目录。
22 0
Pycharm为Python项目配置环境不生效,解决办法
|
17天前
|
Cloud Native 安全 Docker
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
云上攻防-云原生篇&Docker安全&系统内核&版本&CDK自动利用&容器逃逸
|
19天前
|
应用服务中间件 网络安全 nginx
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
|
22天前
|
存储 Linux Docker
python项目 以docker形式打包部署全流程
在很久很久以前,我已经听过Docker的大名,当时服务着急上线虽然考虑过用Docker来部署我的服务,但是因为赶期的原因放弃了。 这两天因为华为云服务器到期,而且阿里云服务器优惠力度特别大的原因,我要把华为云服务器里的工程迁移到阿里云。 迁移的过程中,大量的时间精力浪费在了重装python,加载依赖,迁移项目,配置端口等环境配置的工作上。 我在想,如果当时用了Docker部署,我至于受这气?