jenkins:三.docker容器安装python3环境

 

 

前言

上一篇我们安装在docker中安装了jenkins,运行jenkins工作目录workspaces是在容器内运行的,因此如果执行python代码,容器内部需要安装python3环境.

构建的时候输入pip3,提示:pip3: not found

 进jenkins容器

docke ps

查询正在运行容器id

docker exec -it -u root e7d57efc9142 /bin/bash

docker exec -it -u root 容器id /bin/bash

查看当前操作系统cat /etc/issue

[root@VM_0_11_centos ~]# docker exec -it -u root e7d57efc9142 /bin/bash
root@e7d57efc9142:/# cat /etc/issue
Debian GNU/Linux 9 \n \l

这里查到的是Debian系统(不是ubuntu, 也不是centos),这里yum是没有的,所以不能用yum安装了,这里用apt-get代替yum
先执行更新apt-get

apt-get update

容器内部安装python3环境

进入容器工作目录

cd /var/jenkins_home/

创建python3文件

mkdir python3

进入python3目录

cd python3/

下载python3 package

wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz

解压下载的tar包

tar -xvf Python-3.6.8.tgz

解压完之后需要编译Python-3.6.8包下的文件,先cd过去执行完这句命令之后,把python的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。
如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。

./configure --prefix=/var/jenkins_home/python3

执行 ./configure --prefix=/var/jenkins_home/python3时报上面错:configure: error: no acceptable C compiler found in $PATH

apt-get 安装依赖包

这个是因为缺少gcc相关依赖包,使用apt-get代替yum安装相关依赖包

apt-get -y install gcc automake autoconf libtool make

apt-get -y install make*

apt-get -y install zlib*

apt-get -y install openssl libssl-dev

apt-get install sudo

make编译安装

在/var/jenkins_home/python3/Python-3.6.8目录执行make和make install 安装

 添加软链接

添加python3软链接

find / -name python3

ln -s /var/jenkins_home/python3/bin/python3 /usr/bin/python3

添加pip3软链接

find / -name pip3

ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3

检查环境

输入pip3 和python3检查环境

ssl问题

如果pip3安装的时候遇到报ssl相关问题:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

这个是因为缺少ssl依赖包,网上的解决方案是yum install openssl-devel ,由于Debian系统没有yum,用apt-get安装

安装完成之后只能解决系统自带的python2对应的pip安装问题,无法解决python3的pip3安装问题。

解决办法:上面编译的时候需加上参数 --with-ssl

重新执行make和make install 就可以了

posted @   小林子哈哈  阅读(364)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2020-11-03 mysqlMysql
点击右上角即可分享
微信分享提示