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

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

pyenv是什么

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

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全局版本

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

    bash 复制代码
    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

    bash 复制代码
    curl https://pyenv.run | bash
  3. 配置环境变量 :将 pyenv 添加到 shell 的配置文件中(如 ~/.bashrc~/.zshrc):

    bash 复制代码
    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 版本

    bash 复制代码
    pyenv install 3.9.7
  2. 查看已安装的 Python 版本

    bash 复制代码
    pyenv versions
  3. 设置全局 Python 版本

    bash 复制代码
    pyenv global 3.9.7
  4. 设置项目 Python 版本

    bash 复制代码
    pyenv local 3.8.12
  5. 创建虚拟环境 (需安装 pyenv-virtualenv):

    bash 复制代码
    pyenv virtualenv 3.9.7 myenv
  6. 激活虚拟环境

    bash 复制代码
    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 环境,提升开发体验。

相关推荐
TF男孩11 分钟前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
该用户已不存在5 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
站大爷IP7 小时前
Java调用Python的5种实用方案:从简单到进阶的全场景解析
python
用户83562907805113 小时前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
侃侃_天下13 小时前
最终的信号类
开发语言·c++·算法
c8i13 小时前
python中类的基本结构、特殊属性于MRO理解
python
echoarts13 小时前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
liwulin050613 小时前
【ESP32-CAM】HELLO WORLD
python
Aomnitrix13 小时前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
Doris_202314 小时前
Python条件判断语句 if、elif 、else
前端·后端·python