Pyenv
Pyenv 是一個 Python 版本控制的套件,安裝好後可以輕鬆切換 Python 版本
1. Windoes 安裝 Pyenv
-
使用 git 下載 pyenv-win
git clone https://github.com/pyenv-win/pyenv-win.git "%UserProfile%/.pyenv" -
設定 PYENV 相關變數
變數名稱 變數值 PYENV %USERPROFILE%.pyenv\pyenv-win\ PYENV_ROOT %USERPROFILE%.pyenv\pyenv-win\ PYENV_HOME %USERPROFILE%.pyenv\pyenv-win\ -
編輯
Path變數
為了讓系統能在任何地方執行pyenv命令,我們需要將bin與shims目錄加到 Path 中。%USERPROFILE%\.pyenv\pyenv-win\bin;%USERPROFILE%\.pyenv\pyenv-win\shims;
將它們移到整個清單的最頂端。這能確保系統優先抓取
pyenv的 Python 版本。 -
驗證
Pyenv有沒有安裝成功pyenv version
2. Mac 安裝 Pyenv
-
更新 Homebrew,和安裝 Pyenv 的相依套件
$ brew update $ brew install openssl readline sqlite3 xz zlib -
利用
Homebrew在Mac安裝pyenvbrew install pyenv -
執行以下指令,在
~/.zshrc加入PYENV_ROOT路徑和pyenv init。$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc $ echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc $ echo 'eval "$(pyenv init -)"' >> ~/.zshrc -
重新啟動
shell,就完成。
3. Linux 安裝 Pyenv
-
更新 apt-get 和安裝相依性套件
apt-get update apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget -
利用
git安裝pyenvgit clone https://github.com/pyenv/pyenv.git ~/.pyenv -
執行以下指令,在
~/.bashrc加入PYENV_ROOT路徑和pyenv initecho 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc關於其他 system 需要安裝的相依套件,可以參考這篇文件:https://github.com/pyenv/pyenv/wiki#suggested-build-environment
-
重新啟動
shell,就完成囉!exec "$SHELL"
4. 如何驗證 Pyenv 有沒有安裝成功?
-
查看
pyenv可安裝Python版本pyenv install --list -
安裝想選擇的
python版本pyenv install 3.7.7 pyenv install 3.14.1 -
查看已經安裝過的
pyenv python版本pyenv versions3.14.1 3.7.7 -
切換
Python版本,可以選擇用global、local或shell來執行:pyenv global 3.7.7 pyenv local 3.7.7 pyenv shell 3.7.7global&local&shell三者使用方法差異在於:global對應於全局local對應於當前資料夾shell對應於當前 shell- 優先順序是
shell>local>global
-
Pyenv如何切換成原本系統的 Python 版本
可以使用 pyenv {{global}} system,system 代表原本系統的 python 版本,就可以切換回去pyenv global system在
Windows的pyenv-win中,其實不支援system這個關鍵字(這是Linux/macOS原生pyenv才有的,在Windows中,如果你想用系統本來的Python,只要不啟用pyenv,或者不設定local/global即可,或者是pyenv找不到符合.python-version的本機版本)。 -
為了解決這個衝突,並順利切換版本,請依照以下步驟排查與設定:
- 檢查並刪除
.python-version檔案
pyenv會在目前目錄(以及往上層找)搜尋.python-version,如果有,請直接刪除它。 - 不要使用
system,請改用具體的版本號pyenv global x.x.x - 如果你想用回原本系統的
Python
如果你只是想用原本系統安裝的Python,並且「暫時」不想讓pyenv干涉: - 清除全域的
pyenv設定: 進入C:\Users\您的用戶名\.pyenv\pyenv-win,看看有沒有一個叫version的檔案(沒有副檔名),如果有,把它刪除或清空。 - 或者直接在
pyenv內解除local鎖定:pyenv local --unset
- 檢查並刪除
相關主題與延伸閱讀
- 3. 虛擬環境設置:切換 Python 版本後,通常會搭配虛擬環境來隔離各專案的套件依賴。
- 2. pip 套件管理工具:不同 Python 版本下,都需要搭配
pip來安裝管理套件。 - 1. Visual Studio Code 擴充套件推薦:了解如何在 VS Code 中選擇對應的 Python 直譯器版本。