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

放弃了该方案。

 

posted @ 2023-03-03 17:54  会飞的鱼Fly  阅读(865)  评论(0编辑  收藏  举报