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

python版本管理工具-pyenv轻松切换多个Python版本

在使用python环境开发时,相信肯定被使用版本所烦恼,在用第三方库时依赖兼容的python版本不一样,有没有一个能同时安装多个python并能自由切换的工具呢,那就是pyenv,让你可以轻松切换多个Python 版本。

pyenv是什么

pyenv 让你可以轻松切换多个 Python 版本。它简单、低调,并遵循 UNIX 统一规范。

image

pyenv功能特点

  • 允许你按用户更改全局 Python 版本。
  • 支持每个项目指定 Python 版本。
  • 允许你通过环境变量覆盖 Python 版本。
  • 可以同时从多个Python版本中查找命令,这对于用 tox 跨版本测试很有帮助。

不同,pyenv与 pythonbrew 和 pythonz 不同

依赖 Python 本身。pyenv 完全由 shell 脚本编写,无需 Python 启动。
需要加载到你的 shell。pyenv 采用 shim 机制,只需将目录加入 PATH
管理 virtualenv。你可以自己创建 virtualenv,或用 pyenv-virtualenv 自动化。

使用文档地址:

https://pyenv.uihtm.com

pyenv安装

Linux/Unix/MacOS

如果你已安装 Homebrew,MacOS的 Homebrew 选项同样适用。

1.自动安装器(推荐)

curl -fsSL https://pyenv.run | bash

MacOS

上面Linux部分的选项也可以使用,但建议基本使用Homebrew

Homebrew(macOS 下)
更新 homebrew 并安装 pyenv:

brew update
brew install pyenv

Windows

yenv 官方不支持 Windows,且在 Windows 下无法运行(除非在 WSL)。 此外,即使在 WSL,安装的 Python 也是 Linux 版而非原生 Windows 版, 因此无法获得 Windows 特有功能。

在 Windows 下,推荐使用 pyenv-win

它可安装原生 Windows Python。

PowerShell下安装pyenv-win

Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"; &"./install-pyenv-win.ps1"

2.重新打开PowerShell

执行 pyenv --version 输入已安装的pyenv版本号
执行 pyenv install -l检测可安装的版本Python版本列表
执行 pyenv install 安装指定Python版本
执行 pyenv global 设置 pythone全局版本

image

pyenv-win 命令行大全

  • pyenv local 设置或显示特定应用程序的本地Python版本
  • pyenv latest 打印带有指定前缀的最新已安装或已知版本
  • pyenv global 设置或显示全局Python版本
  • pyenv shell 设置或显示特定shell的Python版本
  • pyenv install 安装一个或多个Python版本
  • pyenv uninstall 卸载一个或多个Python版本
  • pyenv update 更新缓存的版本数据库
  • pyenv rehash 重新生成pyenv shims(切换Python版本后运行此命令)
  • pyenv vname 显示当前Python版本
  • pyenv version 显示当前Python版本及其来源
  • pyenv version-name 显示当前Python版本
  • pyenv versions 列出pyenv可用的所有Python版本
  • pyenv exec 运行可执行文件(首先配置PATH,使所选Python版本的`bin’目录位于最前端)
  • pyenv which 显示可执行文件的完整路径
  • pyenv whence 列出包含指定可执行文件的所有Python版本

总结:pyenv 是一个用于管理多个 Python 版本的工具,特别适合在开发环境中使用。它允许用户在同一台机器上轻松切换不同版本的 Python,而不会影响系统默认的 Python 环境。以下是 pyenv 的主要功能和使用场景:

主要功能

  1. 多版本管理pyenv 可以安装和管理多个 Python 版本,包括 CPython、PyPy、Anaconda 等。用户可以根据项目需求选择特定的 Python 版本。
  2. 版本切换:通过简单的命令,用户可以在全局、项目或当前 shell 会话中切换 Python 版本。
  3. 虚拟环境支持pyenv 可以与 pyenv-virtualenv 插件结合使用,创建和管理独立的 Python 虚拟环境,避免依赖冲突。
  4. 自动版本选择:通过 .python-version 文件,pyenv 可以自动为项目选择正确的 Python 版本。

安装步骤

  1. 安装依赖:在 Linux 或 macOS 上,需要安装一些依赖工具,如 gitcurl
    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
    
  2. 安装 pyenv:使用以下命令安装 pyenv
    curl https://pyenv.run | bash
    
  3. 配置环境变量:将 pyenv 添加到 shell 的配置文件中(如 ~/.bashrc~/.zshrc):
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    echo 'eval "$(pyenv init --path)"' >> ~/.bashrc
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    source ~/.bashrc
    

常用命令

  1. 安装 Python 版本
    pyenv install 3.9.7
    
  2. 查看已安装的 Python 版本
    pyenv versions
    
  3. 设置全局 Python 版本
    pyenv global 3.9.7
    
  4. 设置项目 Python 版本
    pyenv local 3.8.12
    
  5. 创建虚拟环境(需安装 pyenv-virtualenv):
    pyenv virtualenv 3.9.7 myenv
    
  6. 激活虚拟环境
    pyenv activate myenv
    

应用场景

  1. 多项目开发:在同时开发多个项目时,每个项目可能需要不同的 Python 版本或依赖库。pyenv 可以帮助开发者快速切换环境,避免冲突。
  2. 测试兼容性:开发者可以使用 pyenv 安装多个 Python 版本,测试代码在不同版本下的兼容性。
  3. 教学与学习:在学习 Python 时,pyenv 可以方便地安装和切换不同版本,帮助理解 Python 的版本差异。

插件扩展

  1. pyenv-virtualenv:用于管理虚拟环境,支持创建、删除和切换虚拟环境。
  2. pyenv-update:用于更新 pyenv 及其插件到最新版本。
  3. pyenv-which-ext:用于查找特定命令的路径,帮助调试环境问题。

通过 pyenv,开发者可以更高效地管理 Python 环境,提升开发体验。

相关文章:

python版本管理工具-pyenv轻松切换多个Python版本

在使用python环境开发时,相信肯定被使用版本所烦恼,在用第三方库时依赖兼容的python版本不一样,有没有一个能同时安装多个python并能自由切换的工具呢,那就是pyenv,让你可以轻松切换多个Python 版本。 pyenv是什么 p…...

工商总局可视化模版 – 基于ECharts的大数据可视化HTML源码

概述 在大数据时代,数据可视化已成为各行各业进行数据分析和决策的重要工具。幽络源今天为大家带来一款基于ECharts的工商总局数据可视化HTML模版,帮助开发者快速搭建专业级工商广告数据展示平台。这款模版设计规范,功能完善,适合…...

计算机网络 : 网络基础

计算机网络 : 网络基础 目录 计算机网络 : 网络基础引言1. 网络发展背景2. 初始协议2.1 初始协议2.2 协议分层2.2.1 软件分层的好处2.2.2 OSI七层模型2.2.3 TCP/IP五层(四层)模型 2.3 TCP/IP协议2.3.1TCP/IP协议与操作系统的关系&…...

eSwitch manager 简介

eSwitch manager 的定义和作用 eSwitch manager 通常指的是能够配置和管理 eSwitch(嵌入式交换机)的实体或接口。在 NVIDIA/Mellanox 的网络架构中,Physical Function(PF)在 switchdev 模式下充当 eSwitch manager&am…...

物联网技术在银行安全用电系统中的应用与实践研究

摘要 随着金融科技的快速发展,银行业电子设备数量激增,用电安全管理问题日益突出。本文基于2019年农业银行与2020年中国邮政储蓄银行发布的安全用电相关政策,分析了银行场景下存在的五大用电安全隐患,提出以物联网技术为核心的安…...

589. N叉树的前序遍历迭代法:null指针与栈的巧妙配合

一、题目描述 给定一个N叉树的根节点,返回其节点值的前序遍历结果。前序遍历的定义是:先访问根节点,再依次遍历每个子节点(从左到右)。例如,对于如下N叉树: 1/ | \3 2 4 / \ 5 6前序遍历结果…...

【洗车店专用软件】佳易王洗车店多项目会员管理系统:一卡多用扣次软件系统实操教程 #扣次洗车管理软件

一、软件试用版资源文件下载说明 (一)若您想体验软件功能,可通过以下方式获取软件试用版资源文件: 访问头像主页:进入作者头像主页,找到第一篇文章,点击文章最后的卡片按钮,即可了解…...

小红书笔记详情接口如何调用?实操讲解。

调用小红书笔记详情接口通常需要经过申请权限、构建请求、发送请求并处理响应等步骤,以下是详细的实操讲解: 一、申请接口权限 注册小红书开放平台账号 访问小红书开放平台官网/第三方开放平台,按照提示完成注册流程,提供必要的…...

leetcode 57. Insert Interval

题目描述 代码:由于intervals已经按照左端点排序,并且intervals中的区间全部不重叠,那么可以断定intervals中所有区间的右端点也已经是有序的。先二分查找intervals中第一个其右端点>newInterval左端点的区间。然后按照类似于56. Merge In…...

杰理ac696配置mic

省电容mic有概率不出声解决办法如下...

COMSOL随机参数化表面流体流动模拟

基于粗糙度表面的裂隙流研究对于理解地下水的流动、污染物传输以及与之相关的地质灾害(如滑坡)等方面具有重要意义。本研究通过蒙特卡洛方法生成随机表面形貌,并利用COMSOL Multiphysics对随机参数化表面的微尺度流体流动进行模拟。 参数化…...

Linux远程连接服务

远程连接服务器简介 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录linux主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功能 分享主机的运算能力 远…...

用Python绘制梦幻星空

用Python绘制梦幻星空 在这篇教程中,我们将学习如何使用Python创建一个美丽的星空场景。我们将使用Python的图形库Pygame和随机库来创建闪烁的星星、流星和月亮,打造一个动态的夜空效果。 项目概述 我们将实现以下功能: 创建深蓝色的夜…...

EWOMAIL

1、错误 Problem: problem with installed package selinux-policy-targeted-3.14.3-41.el8.noarch package fail2ban-server-1.0.2-3.el8.noarch requires (fail2ban-selinux if selinux-policy-targeted), but none of the providers can be installed - package fail2ban-…...

网安面试经(1)

1.说说IPsec VPN 答:IPsec VPN是利用IPsec协议构建的安全虚拟网络。它通过加密技术,在公共网络中创建加密隧道,确保数据传输的保密性、完整性和真实性。常用于企业分支互联和远程办公,能有效防范数据泄露与篡改,但部署…...

【每天一个知识点】意图传播(Intent Propagation)

在人工智能(AI)快速发展的背景下,自然语言处理(NLP)已成为推动智能系统理解与生成自然语言的核心技术。其中,“意图识别”作为人机交互的关键步骤,已被广泛应用于智能客服、对话系统、语音助手等场景。而“意图传播”(Intent Propagation)作为更深层的机制,逐渐成为当…...

【串流VR手势】Pico 4 Ultra Enterprise 在 SteamVR 企业串流中无法识别手势的问题排查与解决过程(Pico4UE串流手势问题)

写在前面的话 此前(用Pico 4U)接入了MRTK3,现项目落地需要部署,发现串流场景中,Pico4UE的企业串流无法正常识别手势。(一体机方式部署使用无问题) 花了半小时解决,怕忘,…...

工具:shell命令提示符自定义之显示GIT当前分支

1 背景 在命令行操作,每次想查看当前分支都要手动执行命令(git branch)太麻烦了,想着在命令提示符上面显示当前分支,很直观也很方便 2 实现 编辑 vim ~/.bashrc 文件,添加如下内容 function update_prom…...

现代计算机图形学Games101入门笔记(十四)

Irradiance 微小的能量/微小的面积 用Irradiance解释能量大小解释冬夏 Intensity没变,但是Irradiance是衰减的,外圈面积变大,单位面积上接受的能量就变小了。 入射进来 离开 这里就是从某个方向来了一个能量,经过反射&#xff0c…...

前端开发笔记与实践

一、Vue 开发规范与响应式机制 1. 组件命名规范 自定义组件使用大驼峰命名法(如 MyComponent),符合 Vue 官方推荐,便于与原生 HTML 元素区分。 2. Proxy vs defineProperty 特性Proxy(Vue3)Object.defi…...

机器学习知识自然语言处理入门

一、引言:当文字遇上数学 —— 自然语言的数字化革命 在自然语言处理(NLP)的世界里,计算机要理解人类语言,首先需要将文字转化为数学向量。早期的 One-Hot 编码如同给每个词语分配一个唯一的 “房间号”,例…...

泰迪杯特等奖案例深度解析:基于多级二值化与CNN回归的车牌识别系统设计

(第八届泰迪杯数据挖掘挑战赛特等奖案例全流程拆解) 一、案例背景与核心挑战 1.1 行业痛点与场景需求 在智慧交通与无感支付场景中,车牌识别是核心环节。传统车牌识别系统在复杂光照、污损车牌、多角度倾斜等场景下存在显著缺陷。根据某智慧油站2024年运营数据显示,高峰期…...

ai agent(智能体)开发 python高级应用5:crawl4ai 如何建立一个全面的知识库 第一步找分类

让我们充分利用爬虫功能建立自己丰富的知识库, 第一步找分类 以下是一个层次分明、覆盖全面的知识库分类体系,分为9大主类、43个子类,并融入交叉学科和新兴领域设计: 一、经济与商业 宏观经济(全球经济/国家政策&a…...

Solon Ai Flow 编排开发框架发布预告(效果预览)

Solon Ai 在推出 Solon Ai Mcp 后,又将推出 Solon Ai Flow。 1、Solon Ai Flow 是个啥? Solon Ai Flow 是一个智能体编排开发框架。它是框架!不是工具,不是产品(这与市面上流行的工具和产品,有较大差别&a…...

【言语】刷题5(填空)

front:刷题5 第一个词排除人迹罕至 人迹罕至:很少有人去的地方。指偏僻荒涼的地方。(荒郊野岭既视感的一个词) 第二个空锁定B,太贴合语义了 第三个空排除一文不值,百无一用,现在这题已经可以过了…...

技术解码 | 腾讯云SRT弱网优化

随着互联网基础设施和硬件设备的不断发展。广大直播观众对于直播观看的清晰度,延时等方面的体验要求越来越高,直播也随之进入了低延迟高码率的时代,直播传输技术也面临着越来越高的要求和挑战。 腾讯视频云为此在全链路上针对流媒体传输不断深…...

“分布形态“

一、分布形态的基础分类 1、正态分布(对称分布) (1)特征:钟型曲线,均值=中位数=众数;约68%数据在μσ范围内,95%在μ2σ内。 (2)应用:身高、体重、测量误差等自然现象。 (3)重要性:多数统计方法(如T检验、方差分析)假设数据正态性。 2、偏态分布 (1)左偏(负…...

Android minSdk从21升级24后SO库异常

问题 minSdk从21调整到24后: java.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity- Bg31QvFwF4qsCwv2XCqT-w/split_config.arm64_v8a.apkjava.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity-…...

C#进阶(2)stack(栈)

前言 我们前面介绍了ArrayList,今天就介绍另一种数据结构——栈。 这是栈的基本形式,博主简单画了一下,你看个意思就行,很明显,这种数据有一种特征:先进后出。因为先进来的数据会在下面,下面是密闭的,所以只能取后面进来的。 C#为我们封好了这种数据结构,我们不用担…...

Linux du 命令终极指南:从基础到精通

文章目录 Linux du 命令终极指南:从基础到精通du 命令简介常用参数详解常见用法示例查看当前目录总大小查看当前目录及其子目录占用空间只显示当前目录总占用空间查看目录下每个文件和子目录的大小查看某目录深度为 1 的大小分布查看某目录并排除日志文件查看多个目…...

【Linux网络】数据链路层

数据链路层 用于两个设备(同一种数据链路节点)之间进行传递。 认识以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结…...

水库雨水情测报与安全监测系统解决方案

一、方案概述 本水库雨水情测报与安全监测解决方案的核心目标在于利用尖端的技术手段,确保对水库雨水情势以及大坝安全状况的持续监控和及时预警,从而为水库的稳定运行提供坚实的支持和保障。该方案严格遵循“统筹协调、因库制宜、实用有效、信息共享”的…...

Shotcut:免费开源的视频编辑利器

Shotcut是一款功能强大且完全免费的开源视频编辑软件,专为需要高效、灵活视频编辑的用户设计。它支持多种常见视频格式,如MP4、AVI、MOV等,并提供了丰富的视频编辑功能,满足用户在不同场景下的需求。无论是初学者还是专业人士&…...

学习海康VisionMaster之直方图工具

一:进一步学习了 今天学习下VisionMaster中的直方图工具:就是统计在ROI范围内进行灰度级分布的统计 二:开始学习 1:什么是直方图工具? 直方图工具针对输入灰度图像的指定ROI区域,输出该区域的图像灰度直方…...

AI 笔记 -基于retinaface的FPN上采样替换为CARAFE

上采样替换为CARAFE 引言内容感知特征重组(CARAFE)公式化核预测模块 引言 简介:CARAFE(Content-Aware ReAssembly of FEatures),是用于增强卷积神经网络特征图的上采样方法,论文被 ICCV 2019 接…...

Visual Studio 2022 中添加“高级保存选项”及解决编码问题

文章目录 一、背景二、方法方法一:通过菜单栏手动添加(推荐)方法二:通过拖拽快速添加(替代方案) 三、验证与使用四、补充说明五、所能解决的问题 一、背景 VS 在开发cmake项目的过程中,可能会遇…...

SQLMesh 增量模型从入门到精通:5步实现高效数据处理

本文深入解析 SQLMesh 中的增量时间范围模型,介绍其核心原理、配置方法及高级特性。通过实际案例说明如何利用该模型提升数据加载效率,降低计算资源消耗,并提供配置示例与最佳实践建议,帮助读者在实际项目中有效应用这一强大功能。…...

嵌入式开发书籍推荐

嵌入式开发是将计算机技术、微电子技术与各行业应用相结合的综合技术,学习过程中需要多方面知识储备。以下精选书籍,从基础到进阶,助你系统掌握嵌入式开发知识。 基础理论类 《计算机组成原理》(唐朔飞版)&#xff1…...

实变函数 第二章 点集

2 点集 2.1 欧式空间 2.1.1 度量空间、欧式空间 Definition \textbf{Definition} Definition 度量空间 (距离空间) 若 ∀ x , y ∈ X : ∃ d : ( x , y ) → R \forall x,y\in X:\exists d:(x,y)\to\mathbb{R} ∀x,y∈X:∃d:(x,y)→R,满足: d ( x , y…...

国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应

在汽车应用中,轮速传感器可用于车轮速度感应,为 ABS、ESC 等安全系统提供精确的轮速信息,帮助这些系统更好地发挥作用,在紧急制动或车辆出现不稳定状态时,及时调整车轮的制动力或动力分配。 国芯思辰两线制差分式轮速…...

MySQL中innodb的ACID

一、什么ACID A:原子性,事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚;C:一致性,事务必须保证数据库从一个一致性的状态变换成另一个一致性的状态,如A给…...

基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读

Fast Text-to-Audio Generation with Adversarial Post-Training 论文解析 一、引言与背景 文本到音频系统的局限性:当前文本到音频生成系统性能虽佳,但推理速度慢(需数秒至数分钟),限制了其在创意领域的应用。 研究…...

java 使用zxing生成条形码(可自定义文字位置、边框样式)

最新工作中遇到生成条形码的需求&#xff0c;经过一番摸索之后找到了zxing这个工具类&#xff0c;实现效果如下&#xff1a; 首先引入依赖&#xff1a; <!-- 条形码生成器 --><dependency><groupId>com.google.zxing</groupId><artifactId&g…...

4.3/Q1,Charls最新文章解读

文章题目&#xff1a;Longitudinal trajectories of disability index and associated factors in Chinese older adults DOI&#xff1a;10.1016/j.jnha.2025.100530 中文标题&#xff1a;中国老年人残疾指数纵向轨迹及相关因素 发表杂志&#xff1a;J Nutr Health Aging 影响…...

CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏

本系列可作为前端学习系列的笔记&#xff0c;代码的运行环境是在HBuilder中&#xff0c;小编会将代码复制下来&#xff0c;大家复制下来就可以练习了&#xff0c;方便大家学习。 HTML系列文章 已经收录在前端专栏&#xff0c;有需要的宝宝们可以点击前端专栏查看&#xff01; 系…...

Android studio 实现弹出表单编辑界面

方法 1&#xff1a;使用 AlertDialog&#xff08;简单表单&#xff09; 适用于简单的表单场景。 1. 创建表单布局&#xff08;XML&#xff09; 在 res/layout 中新建 dialog_form.xml&#xff1a; <?xml version"1.0" encoding"utf-8"?> <L…...

涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题

文章目录 摘要描述例子&#xff1a; 题解答案&#xff08;Swift&#xff09;题解代码分析动态规划核心思路初始条件 示例测试及结果示例 1&#xff1a;示例 2&#xff1a;示例 3&#xff1a; 时间复杂度空间复杂度总结实际场景联系 摘要 在用户体验和界面设计中&#xff0c;颜…...

WL-G4048 Multi-Port PCIe 4.0 Switch

系列文章目录 文章目录 系列文章目录《WL-G4048 Multi-Port PCIe 4.0 Switch数据手册》总结一、芯片介绍二、芯片规格介绍&#xff08;一&#xff09;功能指标&#xff08;二&#xff09;管理调试和监控&#xff08;三&#xff09;参考时钟&#xff08;四&#xff09;系统复位 …...

基于Huber函数和最大相关熵的抗差滤波算法

最大熵滤波&#xff08;Maximum Entropy Filtering&#xff09;常用于信号处理中的谱估计和噪声抑制&#xff0c;尤其适用于短数据序列的高分辨率谱分析。 一、最大熵滤波算法原理 核心思想&#xff1a;在满足已知自相关函数约束的条件下&#xff0c;使信号的熵最大化。 数学形…...

力扣-39.组合总和

题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被…...