jenkins容器内安装python3
一、容器内安装 python3 方案
Debian系统使用 apt-get 命令安装
1、进入 jenkins 容器 命令:docker exec -itu root 容器ID或者名称 /bin/bash
2、查看容器内系统版本:cat /etc/issue
这里查到的是Debian系统(不是ubuntu, 也不是centos),这里yum是没有的,所以不能用yum安装了,这里用apt-get代替yum 先执行更新apt-get
3、更新apt-get : apt-get update
3、安装wget工具包
apt-get install wget
4、 创建python3安装目录:在jenkins_home目录
mkdir /var/jenkins_home/python3
5、下载python3.9.10版本的压缩包:
下载到python3目录下:/var/jenkins_home/python3,执行:
wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
下载完毕,ls 查看python3安装包已经有了
6、解压:tar -xvf Python-3.9.10.tgz,解压完毕如下
7、在解压包目录执行 ./configure --prefix=/var/jenkins_home/python3 --with-ssl
发现 报错缺少依赖包
cd Python-3.9.10
./configure --prefix=/var/jenkins_home/python3 --with-ssl
8、依次安装以下5条依赖包:需要一定时间和网络
apt-get install build-essential -y apt-get install libncurses5-dev libncursesw5-dev libreadline6-dev -y apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y apt-get install libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev -y apt-get install libssl-dev openssl -y
注意:!!!安装过程中可能会报错
*******下列软件包有未满足的依赖关系:******************************
libssl-dev : 依赖: libssl1.0.0 (= 1.0.1f-1ubuntu2.18) 但是 1.0.1f-1ubuntu9.8 已经被安装 推荐: libssl-doc 但是它将不会被安装,E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决此类的错误,可能如下两条会报错,即:
apt-get install libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev -y 和
apt-get install libssl-dev openssl -y
***************************************************************
解决方案然后执行下列指令依据自己系统:我们是debian执行第一个就行
For Debian and Ubuntu:如果是debian和Ubuntu系统执行下方命令,我们是debian所以用安装下面的: apt-get install build-essential libssl-dev libffi-dev python-dev For Fedora and RHEL-derivatives:如果是Feodra and RHEL-derivatives系统用下列命令
yum install gcc libffi-devel python-devel openssl-devel
For Alpine Linux:如果是alpine liunx用下列命令
libffi-dev, openssl-dev and python3-dev
9、make编译安装
1、在/var/jenkins_home/python3/Python-3.9.10目录执行make和make install 安装
cd /var/jenkins_home/python3/Python-3.9.10
./configure --prefix=/var/jenkins_home/python3 --with-ssl
上面截图提示:
1 If you want a release build with all stable optimizations active (PGO, etc), 2 please run ./configure --enable-optimizations
大概意思是:执行该命令后,会编译安装到 /usr/local/bin/ 下,且不用添加软连接或环境变量。所以我们可以执行上述命令。
1 ./configure --enable-optimizations
终于可以开始编译:
2&3、
make
编译:make
成功了,不用管警告!
如果上述make依然报错,可以参考:https://cloud.tencent.com/developer/article/2111673博主解决方案!
make install
安装完成
10、添加python3软连接:
1 ln -s /var/jenkins_home/python3/bin/python3.9 /usr/bin/python3 2 ln -s /var/jenkins_home/python3/bin/pip3 /usr/bin/pip3
11、检查环境
输入pip3 和python3检查环境
12、安装jenkins容器python3 的依赖三方库方法:
1、获取requirement.txt文件:在本地pycharm,对应执行项目下的终端执行命令
可以直接下载一个较全的包:免得费劲生成,下载完直接跳到步骤2,进针对我目前的项目,对于您的项目所需可能不全,缺少您自己在容器下另行安装即可(命令:pip3 install 三方库名称 -i https://pypi.tuna.tsinghua.edu.cn/simple)
链接:https://pan.baidu.com/s/1a3DitUOCCLlHaDidGMrkhA
提取码:rfvb
1 pip freeze >requirements.txt
2、迁移requirements.txt
从本地拖到宿主机var/jenkins_mount挂载目录,检查容器也有了该文件:
3、在容器内用pip3进行安装
1 pip3 install -r requirement.txt
注意:!!!安装报错提示:
1 WARNING: You are using pip version 21.2.4; however, version 23.0.1 is available. 2 You should consider upgrading via the '/usr/local/bin/python3.9 -m pip install --upgrade pip' command.
执行:
1 /usr/local/bin/python3.9 -m pip install --upgrade pip
先给pip升级了再试,第二次报错:
单独安装了setuptools:
pip3 install --upgrade setuptools
再次执行:
pip3 install -r /opt/requirement.txt
报错:
***********解释****************
提示以“root”用户身份运行 pip 可能会导致权限损坏和冲突,因此我们需要创造一个虚拟的环境区执行它(目前该提示没有解决,尝试下方虚拟环境也没得到解决)最终都安装完毕了,往下翻就刑!
****************************************************
解决方案:如下。打开本地requriment.txt文档对照安装的。虽然笨,但是管用(^_^)
退出容器,exit,重启root身份进入容器:
exit
exit
doker exec -it -uroot 968 /bin/bash
手动安装requirement.txt文档中三方库:列表如下:不会耗费多久时间,上翻只需要修改三方库名称即可
最后全部安装成功:提出依赖包如下:17个
pip3 install libusb1==3.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install colorama==0.4.4 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pip3 atomicwrites==1.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pycodestyle==2.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyparsing==2.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install toml==0.10.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install urllib3==1.26.6 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install typing==3.7.4.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install PyYAML==6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install selenium==3.141.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install requests==2.25.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install py==1.10.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install allure-pytest==2.12.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install xlrd==2.0.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install xlutils==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install xlwt==1.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pytest==7.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
图中的“WARNING:”暂时没有解决,不过目前不影响。
成功,验证python3 依赖三方库安装成功
5、检查pytest是否可用,我这儿安装完可用,报错的不用管,那是么有执行文件而已。
如果不可用,创建一个软链接即可:
不知道pytest原始路径的查一下:
find / -name pytest
1 ln -s /usr/local/lib/python3.9/site-packages/pytest /usr/local/bin/pytest
在容器里再验证一个pytest是否可用即可。如上容器安装python3完毕。
***********************************
栽坑:
这个问题尝试建立一个虚拟环境来解决问题:
1、通过find命令查找pip安装位置:
which pip3
cd /usr/local/bin/
2、使用cd命令跳转到pip安装位置
3、建立虚拟环境
python3 -m venv tutorial-env
4、激活和使用虚拟环境
Linux下:
source tutorial-env/bin/activate
pip3 install -r /var/jenkins_home/requirement.txt 无效了
只能手动一个一个安装
exit退出虚拟环境,root用户下,还是无法使用pytest
放弃了该方案。