docker镜像升级python3.5→python3.9(Ubuntu)

环境介绍

我是在windows系统上安装的docker desktop,用的是Ubuntu系统。

参考资料

参考的升级python的博客在此,请点击查看

问题

在这里插入图片描述
点击图中红框圈出来的那个东西,打开终端,按照上面的博客所说的进行python的升级,但是问题来了,提示

bash: wget: command not found

解决方法

Liunx系统中,-bash: wget: command not found是找不到命令的意思,也就是无法执行下载命令,主要是因为咱的系统太干净了,没有安装下载命令的控制器,我们给系统安装个下载命令器即可。
CentOS系统:

yum install wget -y

Debian/Ubuntu系统,需要执行以下命令:

apt-get install -y wget

解决问题博客在此,请点击查看

make install失败

make install命令报错:

Makefile:1254: recipe for target 'install' failed make: *** [install] Error 1

折腾了好久,网上有很多方法,但是到我这都是套娃

bash: xxx: command not found

最终呢,我是这样操作的,依次执行即可

命令1:

apt update

命令2:

apt-get install --reinstall zlibc zlib1g zlib1g-dev
apt-get install libffi-dev libssl-dev libreadline-dev -y

命令3

make instal

参考博客链接如下:
这个比较全
命令1
命令2和3

### 如何在Docker容器中部署Python 3.9环境 #### 准备工作 为了确保能够顺利地在Docker环境中安装并配置Python 3.9版本,在开始之前应当确认已经正确安装Docker引擎,并且可以通过命令行工具正常调用`docker`指令。 #### 创建基础镜像 基于官方提供的轻量级Linux发行版作为底层操作系统来构建自定义的Docker镜像,这里推荐使用Alpine Linux或Debian Slim这样的精简型映像文件。对于需要长期维护和支持的应用场景,则建议优先考虑采用主流的操作系统供应商所提供的稳定版本。 ```dockerfile FROM python:3.9-slim-buster ``` 这段代码指定了所使用的父镜像是由Python官方团队维护的一个包含了Python 3.9解释器以及必要的依赖库在内的最小化的Debian Buster系统[^1]。 #### 更新包管理器索引源 由于网络原因或者其他因素的影响,默认情况下国内用户可能无法快速获取到所需的软件资源,因此可以在编写Dockerfile加入更改APT源地址的相关语句以提高下载速度: ```dockerfile RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/' /etc/apt/sources.list \ && apt-get update ``` 此部分脚本的作用是将默认的APT仓库URL替换为中国阿里云提供的加速站点链接,并刷新本地缓存以便后续操作能更高效地完成。 #### 安装额外组件 如果项目中有涉及到图形界面交互或者是其他特殊需求的话,还需要进一步扩展当前的基础环境。比如安装一些常用的开发工具链、编译器套件或是特定于业务逻辑的功能模块等。 ```dockerfile RUN apt-get install -y build-essential libpq-dev curl wget unzip git ``` 上述命令会一次性安装多个常用工具集,其中就包括了用于支持C/C++程序编译过程中的gcc/g++系列编译器及其关联头文件;PostgreSQL数据库客户端驱动libpq-dev;还有方便日常调试工作的curl/wget/git等实用小工具。 #### 设置工作目录 为了让整个项目的结构更加清晰明了,通常会在根路径下新建一个专门用来存放应用程序源码的工作空间夹。 ```dockerfile WORKDIR /app ``` 通过这一步骤指定之后所有的相对路径都将以此处为起点计算,同也便于后期管理和迁移。 #### 复制项目文件至目标位置 利用COPY关键字可以把宿主机上的任意文件复制粘贴进正在被构建的新镜像内部去,一般而言我们会把整个工程压缩打包成tarball形式再上传进去解压展开比较好些。 ```dockerfile COPY . . ``` 这条简单的语句实现了将当前所在目录下的所有内容无差别搬运到了前面提到过的/app子目录当中去了。 #### 安装Python依赖项 针对那些依靠第三方库才能正常运作起来的服务端口来说,提前准备好这些外部依赖关系显得尤为重要。借助Pipenv/Poetry这类现代化虚拟环境管理方案可以很好地解决这个问题。 ```dockerfile RUN pip install --upgrade pip setuptools wheel \ && pip install poetry==1.0.10 \ && poetry config virtualenvs.create false \ && poetry install ``` 上面给出的例子展示了怎样先升级内置的pip/setuptools/wheel插件后再引入poetry辅助工具来进行批量式的依赖解析与加载动作。注意最后那句话是为了防止意外创建不必要的隔离沙盒而特意设置的参数选项。 #### 运行测试验证成果 当一切准备工作都已完成以后就可以尝试执行一次完整的启动流程看看效果如何啦! ```dockerfile CMD ["python", "-m", "flask", "run", "--host=0.0.0.0"] ``` 此处假设最终成品是一个Web API服务接口的形式呈现出来的,那么可以直接调用Flask框架自带的小型HTTP服务器来做初步检验之用。当然实际生产环境下还是应该选用Gunicorn/uWSGI之类更为专业的WSGI应用服务器产品替代它才好。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值