当前位置: 首页 > news >正文

Jenkins管理多版本python环境

场景:项目有用到python3.8和3.9,python环境直接安装在jenkins容器内。

1、进入jenkins容器

docker exec -it jenkins /bin/bash

2、安装前置编译环境

# 提前安装,以便接下来的配置操作
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

3、下载python包

这里使用wget命令下载阿里云镜像源

镜像地址python-release-source安装包下载_开源镜像站-阿里云

cd /

apt-get install wget

 wget https://mirrors.aliyun.com/python-release/source/Python-3.8.8.tgz

 wget https://mirrors.aliyun.com/python-release/source/Python-3.9.8.tgz

 tar -zxvf Python-3.8.8.tgz

 tar -zxvf Python-3.9.8.tgz

 mv Python-3.9.8.tgz python3.9

 mv Python-3.8.8.tgz python3.8

4、编译源码安装python

cd python3.8

./configure --prefix=/python3.8

make && make install

重复步骤安装python3.9

 5、建立软连接

sudo ln -s /python3.9/bin/python3.9 /usr/bin/python3.9

sudo ln -s /python3.8/bin/python3.8 /usr/bin/python3.8

使用update-alternatives管理python版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 2

其他几个命令

删除指定的 Python 配置(以 Python 3.8 为例)

sudo update-alternatives --remove python /usr/bin/python3.8

删除所有 Python 版本的配置

sudo update-alternatives --remove-all python

检查配置并选择默认配置

sudo update-alternatives --config python

验证python

 管理pip

sudo ln -s /python3.8/bin/pip /usr/bin/pip3.8

sudo ln -s /python3.9/bin/pip /usr/bin/pip3.9

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.8 1

sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.9 2

 验证pip

相关文章:

Jenkins管理多版本python环境

场景:项目有用到python3.8和3.9,python环境直接安装在jenkins容器内。 1、进入jenkins容器 docker exec -it jenkins /bin/bash 2、安装前置编译环境 # 提前安装,以便接下来的配置操作 apt-get -y install gcc automake autoconf libtool ma…...

Flutter富文本实现学习

Flutter 代码如何实现一个带有富文本显示和交互的页面。 前置知识点学习 RealRichText RealRichText 和 ImageSpan 不是 Flutter 框架中内置的组件,而是自定义的组件或来自第三方库。这些组件的实现可以提供比标准 RichText 更丰富的功能,比如在富文本…...

如何解决 OpenAI API 连接问题:降级 urllib3 版本

如何解决 OpenAI API 连接问题:降级 urllib3 版本 在使用 OpenAI API 时,很多开发者可能会遇到连接问题,特别是在使用 Python 代码与 OpenAI 进行交互时。常见的错误包括 ProxyError、SSLError 和 MaxRetryError,它们通常表示在通…...

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[4]--free

C语言中的free函数用于释放之前通过malloc、calloc或realloc动态分配的内存。然而,在使用free函数时,开发者可能会遇到一些陷阱和缺陷。 一、功能与用法 free 函数是 C 语言中用于释放动态分配内存的关键函数。在程序使用 malloc、calloc 或 realloc 等函数在堆上分配了内存…...

论文分享 | PromptFuzz:用于模糊测试驱动程序生成的提示模糊测试

大语言模型拥有的强大能力可以用来辅助多种工作,但如何有效的辅助仍然需要人的精巧设计。分享一篇发表于2024年CCS会议的论文PromptFuzz,它利用模型提示生成模糊测试驱动代码,并将代码片段嵌入到LLVM框架中执行模糊测试。 论文摘要 制作高质…...

AWS K8s 部署架构

Amazon Web Services(AWS)提供了一种简化的Kubernetes(K8s)部署架构,使得在云环境中管理和扩展容器化应用变得更加容易。这个架构的核心是AWS EKS(Elastic Kubernetes Service),它是…...

JavaSE笔记(四)

Java泛型与集合类 在前面我们学习了最重要的类和对象,了解了面向对象编程的思想,注意,非常重要,面向对象是必须要深入理解和掌握的内容,不能草草结束。在本章节,我们会继续深入了解,从我们的泛型开始,再到我们的数据结构,最后再开始我们的集合类学习。 走进泛型 为…...

C语言基础——指针(5)

一. 函数指针变量 1. 函数指针变量的定义: 类比数组指针变量,数组指针变量是存放数组地址的变量,那么同理,函数指针变量就是存放函数地址的变量。 2. 创建函数指针变量: 函数是有地址的&#xff0…...

curl+openssl 踩坑笔记

curl编译:点击跳转 踩坑一 * SSL certificate problem: unable to get local issuer certificate * closing connection #0 curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.se/docs/sslcerts.html …...

Unity 实现Canvas显示3D物体

新建一个UI相机,选择渲染层为UI 将主相机的渲染层去掉UI层 、 将Canvas的RenderMode设置为Screen Space - Camera,将RenderCamera设置为UI相机 新建3D物体的UI父物体,并将3D物体的层级设置为UI层 适当的放缩3DObjParent,让3D物体能显示出来…...

【Docker命令】如何使用`docker exec`在容器内执行命令

大家好,今天我们来聊聊Docker容器管理中的一个非常有用的命令:docker exec。在日常工作中,我们经常需要在运行中的Docker容器内执行各种命令,docker exec正是帮助我们实现这一需求的利器。下面我将通过一个简单的例子,…...

NetSuite Formula(HTML)超链打开Transaction

当Saved Search作为Sublist应用在Form时,如果Document Number是Group过的,则会出现如下超链失效的情况。 解决办法: 可以利用Saved Search中的Formula(HTML)功能来构建超链,用于打开Transaction。 以下图…...

【React】- 跨域PDF预览、下载(改文件名)、打印

我们经常会碰到跨域来方位PDF,同时需要下载、打印的需求,通常由于浏览器的安全策略,可以预览,但是下载和打印可能会受限,这时候怎么办呢? 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件,…...

git clone ssh 设置代理

Linux配置方法 编辑 ~/.ssh/config 文件 Host github.com Hostname github.com ProxyCommand nc -v -x 127.0.0.1:1080 %h %pwindows配置方法 编辑 C:\Users\当前用户名.ssh\config 文件 Host github.com Hostname github.com ProxyCommand connect -S 127.0.0.1:1080 %h %…...

RK3568平台(USB篇)USB网络共享

使用RK的USB网络共享,在内核里面已经有了,这不需要自己写驱动程序,只需要把内核自带的USB网络共享的驱动添加上去即可。 一.RNDIS 协议简介 RNDIS 是微软定义的一种协议,它允许通过 USB 接口实现网络连接。通过 RNDIS,USB 设备可以充当网络适配器,允许主机通过 USB 与设…...

vite 打包时:JavaScript heap out of memory(内存溢出)

出错原因分析: 执行命令 npm run build 时出现以下错误提示: vite v3.2.7 building for production... 11:22:34 transforming (3) src\main.tsWARN Browserslist: caniuse…...

【服务器学习专栏 1.2 -- 带外管理】

请阅读 嵌入式学习必备专栏 文章目录 Overview服务器带外管理BMC 介绍BMC 特点BMC 工作原理 Overview 从技术的角度,网络管理可分为带外管理(out-of-band)和带内管理(in-band)两种管理模式。 带内管理,是指…...

微服务のGeteWay

目录 概念: 三大核心: 工作流程: 9527网关如何做路由映射: GetWay高级特性: 按服务名动态路由服务: 断言Route Predicate Factories : 获取当前时区时间: After Route &…...

html+css+js网页设计 美食 美食家6个页面

htmlcssjs网页设计 美食 美食家6个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&#xf…...

IntelliJ Idea常用快捷键详解

文章目录 IntelliJ Idea常用快捷键详解一、引言二、文本编辑与导航1、文本编辑2、代码折叠与展开 三、运行和调试四、代码编辑1、代码补全 五、重构与优化1、重构 六、使用示例代码注释示例代码补全示例 七、总结 IntelliJ Idea常用快捷键详解 一、引言 在Java开发中&#xff…...

ROS usb_cam像素格式终极指南:从YUV、MJPEG到源码修改,彻底告别警告和花屏

ROS usb_cam像素格式终极指南:从YUV、MJPEG到源码修改,彻底告别警告和花屏 当你在ROS中调用UVC摄像头时,是否遇到过图像花屏或终端不断弹出"deprecated pixel format"警告?这些问题往往源于对像素格式的误解或配置不当。…...

BetterNCM插件管理器:突破音乐体验边界的全能工具

BetterNCM插件管理器:突破音乐体验边界的全能工具 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否曾因网易云音乐的功能局限而感到遗憾?想自定义界面却无…...

AlexNet架构解析:从理论到实践的深度学习革命

1. AlexNet:开启深度学习新时代的里程碑 2012年对于计算机视觉领域来说是个转折点。当时还在多伦多大学读博士的Alex Krizhevsky和他的导师Geoffrey Hinton教授,带着他们设计的AlexNet神经网络模型,在ImageNet图像识别挑战赛(ILSV…...

【Linux篇】应用层自定义协议与序列化

📌 个人主页: 孙同学_ 🔧 文章专栏:Liunx 💡 关注我,分享经验,助你少走弯路! 应用层 我们程序员写的一个个解决我们实际问题, 满足我们日常需求的网络程序, 都是在应用层。 再谈 …...

Ai2Psd:告别矢量丢失!Illustrator到PSD无损转换的终极解决方案

Ai2Psd:告别矢量丢失!Illustrator到PSD无损转换的终极解决方案 【免费下载链接】ai-to-psd A script for prepare export of vector objects from Adobe Illustrator to Photoshop 项目地址: https://gitcode.com/gh_mirrors/ai/ai-to-psd 还在为…...

ARM交叉编译避坑指南:搞懂-mfloat-abi参数,告别ABI不兼容的诡异错误

ARM交叉编译避坑指南:搞懂-mfloat-abi参数,告别ABI不兼容的诡异错误 在嵌入式开发领域,ARM架构的交叉编译是每个工程师的必修课。但当你信心满满地配置好工具链,执行make命令时,突然跳出的fatal error: gnu/stubs-soft…...

SEO_ 低成本高效进行SEO推广的实战策略

低成本高效进行SEO推广的实战策略 在当今数字化时代,SEO(搜索引擎优化)已经成为了每个企业网站流量获取的重要手段。SEO推广的成本往往让人望而却步。本文将为您揭示低成本高效进行SEO推广的实战策略,帮助您在有限的预算内最大化…...

避坑指南:票务平台反爬机制破解与Selenium自动化测试最佳实践

票务平台反爬机制深度解析与Selenium合规测试实战 每次当你信心满满地部署好爬虫脚本,准备大展身手时,是不是总会被突如其来的验证码、IP封禁或是诡异的页面跳转搞得措手不及?作为经历过无数次"爬虫阵亡"的老兵,我深刻理…...

利用Python脚本高效处理Sentinel2影像:从SAFE格式到GeoTIFF的批量转换

1. 为什么需要处理Sentinel2影像? Sentinel2卫星影像是目前最常用的免费遥感数据源之一,广泛应用于农业监测、环境评估、城市规划等领域。但原始数据下载后是以SAFE格式存储的,这种格式虽然保留了完整的元数据信息,但在实际使用中…...

Sigrity Aurora (II)--Advanced Impedance Analysis Techniques

1. Sigrity Aurora阻抗分析的核心价值 在高速PCB设计领域,阻抗控制就像给信号修高速公路。想象一下,当你的信号以GHz频率在电路板上飞驰时,突然遇到路面凹凸不平(阻抗突变),信号完整性就会像失控的赛车一样…...