在使用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
的主要功能和使用場景:
主要功能
- 多版本管理:
pyenv
可以安裝和管理多個 Python 版本,包括 CPython、PyPy、Anaconda 等。用戶可以根據項目需求選擇特定的 Python 版本。 - 版本切換:通過簡單的命令,用戶可以在全局、項目或當前 shell 會話中切換 Python 版本。
- 虛擬環境支持:
pyenv
可以與pyenv-virtualenv
插件結合使用,創建和管理獨立的 Python 虛擬環境,避免依賴沖突。 - 自動版本選擇:通過
.python-version
文件,pyenv
可以自動為項目選擇正確的 Python 版本。
安裝步驟
- 安裝依賴:在 Linux 或 macOS 上,需要安裝一些依賴工具,如
git
和curl
。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
- 安裝
pyenv
:使用以下命令安裝pyenv
:curl https://pyenv.run | bash
- 配置環境變量:將
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
常用命令
- 安裝 Python 版本:
pyenv install 3.9.7
- 查看已安裝的 Python 版本:
pyenv versions
- 設置全局 Python 版本:
pyenv global 3.9.7
- 設置項目 Python 版本:
pyenv local 3.8.12
- 創建虛擬環境(需安裝
pyenv-virtualenv
):pyenv virtualenv 3.9.7 myenv
- 激活虛擬環境:
pyenv activate myenv
應用場景
- 多項目開發:在同時開發多個項目時,每個項目可能需要不同的 Python 版本或依賴庫。
pyenv
可以幫助開發者快速切換環境,避免沖突。 - 測試兼容性:開發者可以使用
pyenv
安裝多個 Python 版本,測試代碼在不同版本下的兼容性。 - 教學與學習:在學習 Python 時,
pyenv
可以方便地安裝和切換不同版本,幫助理解 Python 的版本差異。
插件擴展
pyenv-virtualenv
:用于管理虛擬環境,支持創建、刪除和切換虛擬環境。pyenv-update
:用于更新pyenv
及其插件到最新版本。pyenv-which-ext
:用于查找特定命令的路徑,幫助調試環境問題。
通過 pyenv
,開發者可以更高效地管理 Python 環境,提升開發體驗。