Linux中管理多版本Python总结
1. pyenv 管理多个 Python 版本
pyenv 是一个流行的工具,用于管理多个 Python 版本。它可以轻松安装、切换和管理不同版本的 Python。
1.1.安装 pyenv
1.1.1安装依赖
sudo apt-get update
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev \
liblzma-dev python-openssl git
1.1.2.安装pyenv
curl https://pyenv.run | bash
1.1.3将pyenv添加到shell配置文件
shell配置文件可选:~/.bashrc 或 ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
1.2. pyenv 安装 Python 版本
1.2.1.查看可安装的 Python 版本
pyenv install --list
1.2.2.安装指定版本的Python
pyenv install 3.9.7
pyenv install 3.8.12
1.2.3.全局 Python 版本
pyenv global 3.9.7
1.2.4设置局部Python版本
在当前目录下生效
pyenv local 3.8.12
1.2.5.切换版本
pyenv shell 3.9.7
2.conda管理多个Python版本
如果你使用 Anaconda 或 Miniconda,可以通过 conda 来管理多个 Python 版本。
2.1.安装conda
2.1.1.交互式安装
Linux的x86_64的安装命令
#下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
#安装
bash Miniconda3-latest-Linux-x86_64.sh
Linux的aarch64版本的安装命令(交互式安装)
# 下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh#安装
bash Miniconda3-latest-Linux-aarch64.sh
交互式安装执行命令后,交互操作如下:
-
按
Enter阅读许可协议。 -
输入
yes接受许可协议。 -
当提示安装路径时,默认路径是
~/miniconda3。你可以直接输入自定义路径,例如:
/opt/miniconda3
不输入则默认安装路径为:~/miniconda3
-
安装程序会检查路径是否存在。如果路径不存在,会提示是否创建目录,输入
yes即可。 -
完成安装后,按照提示初始化 Conda。
2.1.2.非交互式(静默安装)
以非交互方式安装并指定路径,可以使用 -b 参数(批处理模式)和 -p 参数(指定路径)。
命令示例:
bash Miniconda3-latest-Linux-aarch64.sh -b -p /opt/miniconda3
参数说明:
-
-b:批处理模式,无需交互。 -
-p:指定安装路径,注意:路径需要是不存在的路径,安装过程会自动创建。
注意:此方法安装完成后需要手动初始化conda。
2.2.初始化conda
如果安装时没有选择初始化 Conda,可以手动初始化,执行如下命令:
~/miniconda3/bin/conda init
重新加载 Shell 配置文件:
source ~/.bashrc # 如果使用的是 Bash
source ~/.zshrc # 如果使用的是 Zsh
验证安装是否成功:
conda --version
2.3.创建不同版本的Python环境
创建环境的过程conda会自动安装好对应的Python环境
conda create -n py39 python=3.9
conda create -n py38 python=3.8
2.4.激活环境
conda activate py39
3.update-alternatives 管理多个 Python 版本
update-alternatives 是 Debian/Ubuntu 系统中的一个工具,用于管理多个版本的命令。
3.1.安装不同版本的Python
sudo apt-get install python3.9
sudo apt-get install python3.8
3.2.配置Python版本
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
3.3.切换 Python 版本
sudo update-alternatives --config python3
总结
-
pyenv:适合需要频繁切换 Python 版本的用户。 -
conda:适合科学计算和数据科学领域的用户。 -
update-alternatives:适合系统管理员管理多个版本。
这篇博客到这里就接近尾声了,希望我的分享能给您带来一些启发和帮助,别忘了点赞、收藏。您的每一次互动、鼓励是我持续创作的动力!期待与您再次相遇,共同探索更广阔的世界!
相关文章:
Linux中管理多版本Python总结
1. pyenv 管理多个 Python 版本 pyenv 是一个流行的工具,用于管理多个 Python 版本。它可以轻松安装、切换和管理不同版本的 Python。 1.1.安装 pyenv 1.1.1安装依赖 sudo apt-get update sudo apt-get install -y make build-essential libssl-dev zlib1g-dev…...
【系统架构设计师】操作系统 - 特殊操作系统 ③ ( 微内核操作系统 | 单体内核 操作系统 | 内核态 | 用户态 | 单体内核 与 微内核 对比 )
文章目录 一、微内核操作系统1、单体内核 操作系统2、微内核操作系统 引入3、微内核操作系统 概念4、微内核操作系统 案例 二、单体内核 与 微内核 对比1、功能对比2、单体内核 优缺点3、微内核 优缺点 一、微内核操作系统 1、单体内核 操作系统 单体内核 操作系统 工作状态 : …...
OpenBMC:BmcWeb添加路由4 设置method
设置method的方式与设置权限的方式类似: //http\routing\ruleparametertraits.hpp struct RuleParameterTraits {...self_t& methods(boost::beast::http::verb method){self_t* self = static_cast<self_t*>(this);std::optional<HttpVerb> verb = httpVerb…...
【RabbitMQ】RabbitMQ的基本架构是什么?包括哪些核心组件?
RabbitMQ基于AMQP协议实现,由多个核心组件组成,确保消息的可靠传递。 Rabbit的架构图: 1.RabbitMQ的基本架构: 1.核心组件: 1.Producer(生产者): 发送消息到RabbitMQ。 2.Exchange(交换机):接…...
(C语言)将整数转化为二进制(转化二进制教学)
#include <stdio.h> #include <stdlib.h>void intToBinary(int num, char *binary) {int index 0;for (int i 31; i > 0; i--) { // 假设 int 是 32 位int bit (num >> i) & 1; // 获取第 i 位binary[index] bit 0; // 将 bit 转换为字符 0 或…...
Octave3D 关卡设计插件
课程参考链接 这位大佬有在视频合集中有详细的讲解,个人体验过,感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…...
【视频】文本挖掘专题:Python、R用LSTM情感语义分析实例合集|上市银行年报、微博评论、红楼梦、汽车口碑数据采集词云可视化
原文链接:https://tecdat.cn/?p41149 分析师:Zhenzhen Liu,Shuai Fung 作为数据科学家,我们始终关注如何从非结构化数据中提取高价值信息。本专题合集聚焦企业年报的文本分析技术,通过Python与R语言实战案例ÿ…...
反编译内容
“反编译” 是指将可执行的程序(如二进制代码、字节码等)转换回人类可读的高级语言源代码或某种中间表示形式的过程。 在软件领域,比如对于用 Java 编写的程序,编译后是字节码文件(.class),反…...
机器学习扫盲系列(1) - 序
文章目录 序为什么要写这一系列?AI 概念科普原理性思维转行立flag 这一系列的计划神经网络训练框架 序 为什么要写这一系列? AI 概念科普 在各种AI概念铺天盖地向我们袭来的今天,我们作为其他方向的工作者,如果想转行做深度学习…...
英伟达“AI 超级碗”开幕
Nvidia的AI和机器人技术进展 2025年03月19日 | AI日报  欢迎各位人工智能爱好者。 Nvidia的CEO Jensen Huang刚刚拉开了他的“AI超级碗”,并发表了关于该公司最新芯片、…...
DeepSeek扫盲篇: V3 vs R1全面对比架构差异与蒸馏模型演进史
I. 引言:DeepSeek系列的技术革命 在全球大模型军备竞赛白热化的2023年,DeepSeek系列通过V3与R1两款里程碑产品,构建了中文大模型领域的"双塔奇观"。这两个看似矛盾的版本——前者以1280亿参数的MoE架构突破算力边界,后…...
UE5材质法线强度控制节点FlattenNormal
连法 FlattenNormal内部是这样的 FlattenNormal的作用是用来调整法线强度 连上FlattenNormal后 拉高数值...
【一起来学kubernetes】19、Pod使用详解
Kubernetes 中的 Pod 是最小的可调度和可管理单元,也是容器化应用的载体。Pod 封装了一个或多个紧密关联的容器,共享网络、存储和生命周期。 一、Pod 的核心概念 定义 Pod是Kubernetes中最小的部署单元,可以包含一个或多个容器。这些容器紧…...
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统
第2章:容器核心原理:深入理解Namespace、Cgroup与联合文件系统 作者:DogDog_Shuai 阅读时间:约20分钟 难度:中级 目录 1. 引言2. Linux容器核心技术3. Namespace详解4. Cgroup详解5. 联合文件系统6. 容器运行时原理...
计算机网络基础:认识网络硬件与传输介质
计算机网络基础:认识网络硬件与传输介质 一、前言二、网络硬件设备2.1 路由器2.1.1 路由器的基本概念与功能2.1.2 路由器的工作原理2.1.3 路由器的类型与应用场景 2.2 交换机2.2.1 交换机的基本概念与功能2.2.2 交换机的工作原理2.2.3 交换机的类型与应用场景 2.3 服…...
Android audio(8)-native音频服务的启动与协作(audiopolicyservice和audioflinger)
音频策略的构建 1、概述 2、AudiopolicyService 2.1 任务 2.2 启动流程 2.2.1 加载audio_policy.conf(xml)配置文件 2.2.2 初始化各种音频流对应的音量调节点 2.2.3 加载audio policy硬件抽象库 2.2.4设置输出设备 ps:audiopatch流程简介 2.2.5打开输出设…...
法兰克仿真软件FANUC CNC Guide v25.0 安装教程及中文设置
前言 下载地址在文末。 我们公司用新到一批FANUC 系统的设备,为方便使用就装了一个 FANUC 数控系统仿真软件FANUC CNC Guide v25.0 ,还是最新版不是市面上流传的老版本。模拟学习一下。 安装操作 安装环境:Windows 11 专业版 24H2 安装程…...
事务隔离级别是?
事务隔离级别是数据库管理系统用来控制多个事务并发执行时对数据的可见性和一致性的机制。MySQL支持四种标准的事务隔离级别,它们定义了事务如何与其他并发事务交互。 四种事务隔离级别: READ UNCOMMITTED(读未提交) READ COMMIT…...
[JavaScript]如何利用作用域块避免闭包内存泄漏?
出自《你不知道的JavaScript》上卷 以下是本书给出的反例: function process (data) {...} var bigdata{...} process(bigdata); var btn document.getElementById(x); btn.addEventListener(click, function click{...});click会被回调在其他位置, 在addEventListener函数内…...
基于Selenium Grid的分布式测试架构设计与深度实践
一、引言:分布式测试的必然性与挑战 在数字化转型浪潮中,软件交付速度已成为企业竞争力的核心指标。敏捷开发、DevOps和持续交付(CI/CD)的普及,使得传统测试方法面临前所未有的挑战。单机测试模式在应对以下场景时显得…...
JavaScript 金额运算精度丢失问题及解决方案
JavaScript 金额运算精度丢失问题及解决方案 1. 前言2. 为什么 JavaScript 计算金额会精度丢失?2.1 JavaScript 使用 IEEE 754 双精度浮点数2.2 浮点运算错误示例**错误示例 1:0.1 0.2 ≠ 0.3****错误示例 2:浮点乘法精度问题** 3. 解决方案…...
【Python】使用ImageEnhance提升图片画质
使用ImageEnhance提升图片画质 from PIL import Image, ImageEnhance import ioimage_path "PhoneImg_20250319_160023607949_01.png"def enhance_image_quality(image_path):"""使用双三次插值算法提升画质"""with Image.open(imag…...
vector容器以及deque
vector 一.vector容器简介二.vector的默认构造1. 语法和功能2.vector带参数的构造3.vector的赋值4.vector的大小5.vector数值操作 deque简介: 一.vector容器简介 • vector是将元素置于一个动态数组中加以管理的容器。 std::vector 是 C 标准模板库(STL…...
jmeter中,上传文件的MIME类型
text/plain:用于纯文本文件,如.txt文件。 text/html:用于HTML文档,即.html文件。 application/msword:Microsoft Word文档,即.doc和.docx文件。 image/jpeg:JPEG图像&#x…...
《心理学与生活》2025最新网课答案
《心理学与生活》2025最新网课答案 文章目录 《心理学与生活》2025最新网课答案发展与教育单元测试情绪与情感单元测验人格与动机单元测试感知与记忆单元测试文化与社会单元测试 发展与教育单元测试 题数 20 棉花糖实验中哪些小孩长大后的表现更好()。 …...
Java SE 面经
1、Java 语言有哪些特点 Java 语言的特点有: ①、面向对象。主要是:封装,继承,多态。 ②、平台无关性。一次编写,到处运行,因此采用 Java 语言编写的程序具有很好的可移植性。 ③、支持多线程。C 语言没…...
关于redis中的分布式锁
目录 分布式锁的基础实现 引入过期时间 引入校验id 引入lua脚本 引入看门狗 redlock算法 分布式锁的基础实现 多个线程并发执行的时候,执行的先后顺序是不确定的,需要保证程序在任意执行顺序下,执行逻辑都是ok的。 在分布式系统中&am…...
SQL Server数据库慢SQL调优
SQL Server中慢SQL会显著降低系统性能并引发级联效应。首先,用户直接体验响应时间延长,核心业务操作(如交易处理、报表生成)效率下降,导致客户满意度降低甚至业务中断。其次,资源利用率失衡,CPU…...
【css酷炫效果】实现鱼群游动动态效果
【css酷炫效果】实现小鱼游动动态效果 缘创作背景css代码创建div容器引入jquery引入鱼群js完整代码效果图成品资源下载链接:点击下载 缘 在开发系统功能的时候,无意间看到了小鱼游动特效,感觉很有意思,就在网上找了相关教程,分享给大家。 创作背景 刚看到csdn出活动了…...
kubectl describe pod 命令以及输出详情讲解
kubectl describe pod 命令格式 kubectl describe pod <pod-name> -n <namespace><pod-name>:Pod 的名称。 -n <namespace>:指定命名空间,默认是当前命名空间。 controlplane ~ ✖ kubectl describe pod newpods-d…...
