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 环境,提升开发体验。

相关推荐
(・Д・)ノ2 分钟前
python打卡day27
开发语言·python
芯眼25 分钟前
STM32启动文件详解(重点)
java·开发语言·c++·stm32·单片机·mybatis
小oo呆1 小时前
【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核
python·jupyter·conda
愚润求学1 小时前
【Linux】动静态库链接原理
linux·运维·服务器·开发语言·笔记
呦呦彬1 小时前
【问题排查】easyexcel日志打印Empty row!
java·开发语言·log4j
Tummer83631 小时前
C#+WPF+prism+materialdesign创建工具主界面框架
开发语言·c#·wpf
九章云极AladdinEdu1 小时前
GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
java·开发语言·人工智能·深度学习·测试工具·负载均衡·transformer
好吃的肘子2 小时前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索
ghost1432 小时前
C#学习第23天:面向对象设计模式
开发语言·学习·设计模式·c#
小白学大数据2 小时前
Scrapy框架下地图爬虫的进度监控与优化策略
开发语言·爬虫·python·scrapy·数据分析