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 環境,提升開發體驗。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80175.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80175.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80175.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Elasticsearch 索引副本數

作者:來自 Elastic Kofi Bartlett 解釋如何配置 number_of_replicas、它的影響以及最佳實踐。 更多閱讀:Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica 想獲得 Elastic 認證?查看下一期 Elasticsearc…

AXI4總線協議 ------ AXI_LITE協議

一、AXI 相關知識介紹 https://download.csdn.net/download/mvpkuku/90841873 AXI_LITE 選出部分重點,詳細文檔見上面鏈接。 1.AXI4 協議類型 2.握手機制 二、AXI_LITE 協議的實現 1. AXI_LITE 通道及各通道端口功能介紹 2.實現思路及框架 2.1 總體框架 2.2 …

idea運行

各種小kips Linuxidea上傳 Linux 部署流程 1、先在idea打好jar包,clean之后install 2、在Linux目錄下,找到對應項目目錄,把原來的jar包放在bak文件夾里面 3、殺死上一次jar包的pid ps -ef|grep cliaidata.jar kill pid 4、再進行上傳新的jar…

FPGA: XILINX Kintex 7系列器件的架構

本文將詳細介紹Kintex-7系列FPGA器件的架構。以下內容將涵蓋Kintex-7的核心架構特性、主要組成部分以及關鍵技術,盡量全面且結構化,同時用簡潔的語言確保清晰易懂。 Kintex-7系列FPGA架構概述 Kintex-7是Xilinx 7系列FPGA中的中高端產品線,基…

【LLM】大模型落地應用的技術 ——— 推理訓練 MOE,AI搜索 RAG,AI Agent MCP

【LLM】大模型落地應用的技術 ——— 推理訓練MOE,AI搜索RAG,AI Agent MCP 文章目錄 1、推理訓練 MOE2、AI搜索 RAG3、AI Agent MCP 1、推理訓練 MOE MoE 是模型架構革新,解決了算力瓶頸。原理是多個專家模型聯合計算。 推理訓練MoE&#xff…

10 web 自動化之 yaml 數據/日志/截圖

文章目錄 一、yaml 數據獲取二、日志獲取三、截圖 一、yaml 數據獲取 需要安裝 PyYAML 庫 import yaml import os from TestPOM.common import dir_config as Dir import jsonpathclass Data:def __init__(self,keyNone,file_name"test_datas.yaml"):file_path os…

中exec()函數因$imagePath參數導致的命令注入漏洞

exec(zbarimg -q . $imagePath, $barcodeList, $returnVar); 針對PHP中exec()函數因$imagePath參數導致的命令注入漏洞,以下是安全解決方案和最佳實踐: 一、漏洞原理分析 直接拼接用戶輸入$imagePath到系統命令中,攻擊者可通過注入特殊字…

this.$set的用法-響應式數據更新

目錄 一、核心作用 三、使用場景與示例 1. 給對象添加新屬性 四、與 Vue.set 的關系 五、底層原理 六、Vue 3 的替代方案 七、最佳實踐 八、常見問題 Q:為什么修改嵌套對象屬性不需要 $set? Q:$set 和 $forceUpdate 的區別&#xf…

【生成式AI文本生成實戰】DeepSeek系列應用深度解析

目錄 🌟 前言🏗? 技術背景與價值🩹 當前技術痛點🛠? 解決方案概述👥 目標讀者說明 🧠 一、技術原理剖析📊 核心概念圖解💡 核心作用講解🔧 關鍵技術模塊說明?? 技術選…

c/c++的opencv的圖像預處理講解

OpenCV 圖像預處理核心技術詳解 (C/C) 圖像預處理是計算機視覺任務中至關重要的一步。原始圖像往往受到噪聲、光照不均、尺寸不一等多種因素的影響,直接用于后續分析(如特征提取、目標檢測、機器學習模型訓練等)可能會導致性能下降或結果不準…

使用 Docker 部署 React + Nginx 應用教程

目錄 1. 創建react項目結構2. 創建 .dockerignore3. 創建 Dockerfile4. 創建 nginx.conf5. 構建和運行6. 常用命令 1. 創建react項目結構 2. 創建 .dockerignore # 依賴目錄 node_modules npm-debug.log# 構建輸出 dist build# 開發環境文件 .git .gitignore .env .env.local …

Java 流(Stream)API

一、理論說明 1. 流的定義 Java 流(Stream)是 Java 8 引入的新特性,用于對集合(如 List、Set)或數組進行高效的聚合操作(如過濾、映射、排序)和并行處理。流不存儲數據,而是按需計…

網絡協議分析 實驗七 FTP、HTTP、DHCP

文章目錄 實驗7.1 FTP協議練習二 使用瀏覽器登入FTP練習三 在窗口模式下,上傳/下傳數據文件實驗7.2 HTTP(Hyper Text Transfer Protocol)練習二 頁面提交練習三 訪問比較復雜的主頁實驗7.3 DHCP(Dynamic Host Configuration Protocol) 實驗7.1 FTP協議 dir LIST&…

go語言學習進階

目錄 第一章 go語言中包的使用 一.main包 二.package 三.import 四.goPath環境變量 五.init包初始化 六.管理外部包 第二章 time包 第三章 File文件操作 一.FileInfo接口 二.權限 三.打開模式 四.File操作 五.讀文件 參考1:Golang 中的 bufio 包詳解…

Hue面試內容整理-后端框架

Cloudera 的 Hue 項目在后端采用了成熟的 Python Web 框架 Django,結合其他組件構建了一個可擴展、模塊化的系統,便于與 Hadoop 生態系統中的各個組件集成。以下是 Hue 后端架構的詳細介紹: 后端架構概覽 1. Django Web 框架 Hue 的核心是基于 Django 構建的 Web 應用,負責…

Web-CSS入門

WEB前端,三部分:HTML部分、CSS部分、Javascript部分。 1.HTML部分:主要負責網頁的結構層 2.CSS部分:主要負責網頁的樣式層 3.JS部分:主要負責網頁的行為層 **基本概念** 層疊樣式表,Cascading Style Sh…

2025年PMP 學習十六 第11章 項目風險管理 (總章)

2025年PMP 學習十六 第11章 項目風險管理 (總章) 第11章 項目風險管理 序號過程過程組1規劃風險管理規劃2識別風險規劃3實施定性風險分析規劃4實施定量風險分析規劃5規劃風險應對執行6實施風險應對執行7監控風險監控 目標: 提高項目中積極事件的概率和…

基于SpringBoot的小區停車位管理系統

作者:計算機學姐 開發技術:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源碼”。 專欄推薦:前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄:…

HTML常用標簽用法全解析:構建語義化網頁的核心指南

HTML作為網頁開發的基石&#xff0c;其標簽的合理使用直接影響頁面的可讀性、SEO效果及維護性。本文系統梳理HTML核心標簽的用法&#xff0c;結合語義化設計原則與實戰示例&#xff0c;助你構建規范、高效的網頁結構。 一、基礎結構與排版標簽 1.1 文檔結構 <!DOCTYPE htm…

國產linux系統(銀河麒麟,統信uos)使用 PageOffice自定義Word模版中的數據區域

? PageOffice 國產版 &#xff1a;支持信創系統&#xff0c;支持銀河麒麟V10和統信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飛騰、鯤鵬、麒麟等&#xff09;、龍芯&#xff08;Mips、LoogArch&#xff09;芯片架構。 在實際的Wor…