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

centos下使用pyenv管理python版本

在 CentOS 上安装 pyenvpyenv-virtualenv,可以按照以下步骤进行操作:

ps: centos7 最高适配到3.9.*

步骤 1:安装依赖

首先,确保你的系统中安装了必需的依赖项。你可以使用以下命令安装它们:

[root@ ~]# yum groupinstall "Development Tools"
[root@ ~]# yum install gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel

步骤 2:安装 pyenv

接下来,安装 pyenv。你可以通过克隆 pyenv 的 GitHub 仓库来安装:

# 该命令将自动安装 pyenv、pyenv-virtualenv 和其他一些辅助工具。
# 但是会安装到$Home/.pyenv 目录下
[root@ tools]# curl https://pyenv.run | bash# 这个方法可以安装到指定目录下
[root@ tools]# export PYENV_ROOT="/usr/local/pyenv"
[root@ tools]# curl https://pyenv.run | bash# 或者 
[root@ tools]# git clone https://github.com/pyenv/pyenv.git /usr/local/pyenv
[root@ tools]# git clone https://github.com/pyenv/pyenv-virtualenv.git /usr/local/pyenv/plugins/pyenv-virtualenv

步骤 3:配置环境变量

安装完成后,需要将 pyenv 路径添加到你的 shell 配置文件中。根据你使用的 shell(bash、zsh 等),编辑相应的配置文件。

对于 bash,在 ~/.bashrc 文件中添加以下内容:

[root@ tools]# vim ~/.bashrc# 设置 pyenv 根目录
export PYENV_ROOT="/usr/local/pyenv"
# 检查 pyenv 是否存在,并添加其路径
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
# 初始化 pyenv 相关设置
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"[root@ local]# source ~/.bashrc

步骤 4:安装 Python 版本

现在,你已经可以使用 pyenv 安装多个 Python 版本了。你可以列出可安装的版本:

[root@ local]# pyenv install --list

会返回很对的版本,选择需要安装的版本即可。如果安装不成功,可以选择自己下载指定版本,再安装:

[root@ local]# pyenv install 3.9.21
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Downloading Python-3.9.21.tar.xz...
-> https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tar.xz# 这里如果卡住了,下载安装不成功,我们换种方式
[root@ local]# cd /usr/local/pyenv/
[root@ pyenv]# mkdir cache
[root@ cache]# cd cache
[root@ cache]# wget https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tar.xz# 下载完成后
[root@ cache]# pyenv install 3.9.21
WARNING: Please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file.
Installing Python-3.9.21...
Installed Python-3.9.21 to /usr/local/pyenv/versions/3.9.21

 步骤 5:查看已安装的 Python 版本和虚拟环境

查看当前安装的 Python 版本:

[root@ cache]# pyenv versions
* system (set by /usr/local/pyenv/version)3.9.21

步骤 6:设置全局 Python 版本

你可以设置一个全局的 Python 版本,这将是系统默认使用的版本:

[root@ cache]# pyenv global 3.9.21
[root@ cache]# pyenv versionssystem
* 3.9.21 (set by /usr/local/pyenv/version)

步骤 7:创建虚拟环境

使用 pyenv-virtualenv 创建虚拟环境。例如,创建一个名为 myenv 的虚拟环境:

[root@ cache]# pyenv virtualenv 3.9.21 myenv
Looking in links: /tmp/tmptpra4pd8
Requirement already satisfied: setuptools in /usr/local/pyenv/versions/3.9.21/envs/myenv/lib/python3.9/site-packages (58.1.0)
Requirement already satisfied: pip in /usr/local/pyenv/versions/3.9.21/envs/myenv/lib/python3.9/site-packages (23.0.1)

步骤 8:激活虚拟环境

要激活刚刚创建的虚拟环境,可以使用以下命令:

[root@ cache]# pyenv activate myenv
(myenv) [root@ cache]# 

 如果想直接通过安装的虚拟环境的解释器执行脚本,可以使用以下命令:

[root@ cache]# /usr/local/pyenv/versions/3.9.21/bin/python -V
Python 3.9.21[root@ cache]# /usr/local/pyenv/versions/myenv/bin/python -V
Python 3.9.21

步骤 9:退出虚拟环境

退出当前虚拟环境,可以运行:

(myenv) [root@ cache]# pyenv deactivate

步骤 10:删除虚拟环境、安装的python

如果删除虚拟环境、安装的python:

[root@ cache]# pyenv virtualenvs3.9.21/envs/myenv (created from /usr/local/pyenv/versions/3.9.21)myenv (created from /usr/local/pyenv/versions/3.9.21)[root@ cache]# pyenv uninstall myenv
pyenv: remove /usr/local/pyenv/versions/myenv? (y/N) y
pyenv-virtualenv: remove /usr/local/pyenv/versions/3.9.21/envs/myenv? (y/N) y[root@ cache]# pyenv virtualenvs[root@ cache]# pyenv versionssystem
* 3.9.21 (set by /usr/local/pyenv/version)[root@ cache]# pyenv uninstall 3.9.21
pyenv: remove /usr/local/pyenv/versions/3.9.21? (y/N) y
pyenv: 3.9.21 uninstalled[root@ cache]# pyenv versions
pyenv: version `3.9.21' is not installed (set by /usr/local/pyenv/version)system

相关文章:

centos下使用pyenv管理python版本

在 CentOS 上安装 pyenv 和 pyenv-virtualenv,可以按照以下步骤进行操作: ps: centos7 最高适配到3.9.* 步骤 1:安装依赖 首先,确保你的系统中安装了必需的依赖项。你可以使用以下命令安装它们: [root ~]# yum gro…...

C++:类与对象,定义类和构造函数

#define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> using namespace std; //如何让定义一个类 // 封装 // 1、将数据和方法定义到一起。 // 2、把想给你看的数据给你看&#xff0c;不想给你看的封装起来。 通过访问限定符来实现 class Stack { public: //1.成…...

【Java消息队列】应对消息丢失、重复、顺序与积压的全面策略

应对消息丢失、重复、顺序与积压的全面策略 引言kafka消息丢失生产者消费者重复消费顺序消费消息积压生产者消费者其他RabbitMQ消息丢失生产者事务机制,保证生产者发送消息到 RabbitMQ Server发送方确认机制,保证消息能从交换机路由到指定队列保证消息在 RabbitMQ Server 中的…...

解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”

一、神经网络&#xff1a;AI 领域的 “超级引擎” 在机器学习的庞大算法体系中&#xff0c;有十种算法被广泛认为是最具代表性和实用性的&#xff0c;它们犹如机器学习领域的 “十大神器”&#xff0c;各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森…...

Android14(13)添加墨水屏手写API

软件平台&#xff1a;Android14 硬件平台&#xff1a;QCS6115 需求&#xff1a;特殊品类的产品墨水屏实现手写的功能&#xff0c;本来Android自带的Input这一套可以实现实时展示笔迹&#xff0c;但是由于墨水屏特性&#xff0c;达不到正常的彩屏刷新的帧率&#xff0c;因此使用…...

flyway的ignoreMigrationPatterns

1、概述 ignoreMigrationPatterns 是 Flyway 中的一个配置选项&#xff0c;用于指定在迁移过程中可以忽略的迁移脚本的模式。这个选项通常用于在特定情况下跳过某些迁移脚本的执行&#xff0c;例如在开发环境中跳过某些测试数据脚本&#xff0c;或者在特定条件下忽略某些已经不…...

25年2月通信基础知识补充:多普勒频移与多普勒扩展、3GPP TDL信道模型

看文献过程中不断发现有太多不懂的基础知识&#xff0c;故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关&#xff0c;故记录不会很深入请见谅。 【通信基础知识补充7】25年2月通信基础知识补充1 一、多普勒频移与多普勒扩展傻傻分不…...

华为动态路由-OSPF-骨干区

华为动态路由-OSPF-骨干区 一、OSPF简介 1、OSPF概述 OSPF是一种开放式的、基于链路状态的内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于在自治系统内部进行路由选择和通信。 OSPF是互联网工程任务组&#xff08;IETF&#xff09;定义的标准之一&#xff0c;被广…...

接口测试-API测试中常用的协议(中)

一、SOAP SOAP&#xff08;Simple Object Access Protocol&#xff09;即简单对象访问协议&#xff0c;是一种基于 XML 的用于在网络中交换结构化信息的协议&#xff0c;常用于 Web 服务之间的通信。以下为你详细介绍&#xff1a; 产生背景 在互联网发展过程中&#xff0c;需…...

植物大战僵尸杂交版v3.2.1最新版本(附下载链接)

B站游戏作者潜艇伟伟迷于12月21日更新了植物大战僵尸杂交版3.2.1版本&#xff01;&#xff01;&#xff01;&#xff0c;有b站账户的记得要给作者三连关注一下呀&#xff01; 不多废话下载链接放上&#xff1a; 夸克网盘链接&#xff1a;&#xff1a;https://pan.quark.cn/s/e5…...

java每日精进 2.20 MQ相关复健

在 RabbitMQ 中&#xff0c;消息消费者对消息的签收&#xff08;acknowledgment&#xff09;可以通过三种方式进行管理&#xff1a;自动签收、手动签收 和 拒绝签收。它们主要控制消费者如何处理消息确认和消息的重新排队。下面详细讲解它们的区别&#xff0c;并通过代码示例展…...

【设计模式精讲】结构型模式之代理模式(静态代理、JDK动态代理、cglib动态代理)

文章目录 第五章 结构型模式5.1 代理模式5.1.1 代理模式介绍5.1.2 代理模式原理5.1.3 静态代理实现5.1.4 JDK动态代理5.1.4.1 JDK动态代理实现5.1.4.2 类是如何动态生成的5.1.4.3 代理类的调用过程 5.1.5 cglib动态代理5.1.5.1 cglib动态代理实现5.1.5.2 cglib代理流程 5.1.6 代…...

京东广告基于 Apache Doris 的冷热数据分层实践

一、背景介绍 京东广告围绕Apache Doris建设广告数据存储服务&#xff0c;为广告主提供实时广告效果报表和多维数据分析服务。历经多年发展&#xff0c;积累了海量的广告数据&#xff0c;目前系统总数据容量接近1PB&#xff0c;数据行数达到18万亿行&#xff0c;日查询请求量8…...

win11 安装pyenv来管理python

1、使用power shell或者cmd来安装&#xff1a; 2、使用pyenv 发现并没有pyenv。 3、在环境变量中增加&#xff1a; 路径&#xff1a;右键--此电脑--属性--高级系统设置--环境变量--Path--增加刚才--target所在的目录D:\tools\pyenv\pyenv-win\bin。 先退出当前的&#xff0c;…...

【AI】GitHub Copilot

GitHub Copilot 是一款由 GitHub 和 OpenAI 合作开发的 AI 编程助手&#xff0c;它可以在多种开发工具中使用。以下是 GitHub Copilot 支持的主要开发工具和平台&#xff1a; 1. Visual Studio Code (VS Code) 官方支持&#xff1a;GitHub Copilot 在 VS Code 中拥有最完整的集…...

【LeetCode 热题100】76. 最小覆盖子串的算法思路及python代码

76. 最小覆盖子串 给你一个字符串 s s s、一个字符串 t t t。返回 s s s 中涵盖 t t t 所有字符的最小子串。如果 s s s 中不存在涵盖 t t t 所有字符的子串&#xff0c;则返回空字符串 ‘ ‘ " \quad" ‘‘" 。 注意&#xff1a; 对于 t t t 中重复…...

力扣-回溯-17 电话号码的字母组合

思路 和之前的回溯不同的是&#xff0c;要遍历完所有的数字&#xff0c;并且在单层递归逻辑里需要遍历一整个字符串 代码 class Solution { public:vector<string> letters {"", "", "abc", "def", "ghi", "…...

[AHOI2018初中组] 分组---贪心算法

贪心没套路果真如此。 题目描述 小可可的学校信息组总共有 n 个队员&#xff0c;每个人都有一个实力值 ai​。现在&#xff0c;一年一度的编程大赛就要到了&#xff0c;小可可的学校获得了若干个参赛名额&#xff0c;教练决定把学校信息组的 n 个队员分成若干个小组去参加这场…...

知识图谱-学习计划

✨知识图谱知识学习&#xff0c;给我点赞&#xff01;&#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f;什么是知识图谱&#xff1f; 知识图谱是一种通过图结构表示知识的技术&#xff0c;它可以帮助我们更清晰地理解和组织信息。无论是学习、工作还是生活&#xff0c;知…...

网安作业3

标准版 接口ip配置 r2 [r2]interface GigabitEthernet 0/0/0 [r2-GigabitEthernet0/0/0]ip address 13.0.0.3 24 [r2-GigabitEthernet0/0/0]interface GigabitEthernet 0/0/1 [r2-GigabitEthernet0/0/1]ip address 100.1.1.254 24 [r2-GigabitEthernet0/0/1]interface Gigab…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...