您的位置:首頁技術文章
文章詳情頁

Python使用pyenv實現多環境管理

瀏覽:23日期:2022-06-28 13:23:38
1 背景&概述

因某些需求,需要安裝 TensorFlow ,很自然地在終端敲下了以下命令:

pip install tensorflow

然后。。。

Python使用pyenv實現多環境管理

好家伙???

居然沒有??

因為是 Python 3.9 ,去 pypi 搜索了,居然還真沒有支持的,最高只有 Python 3.8 :

Python使用pyenv實現多環境管理

于是便考慮一個多版本的 Python 環境,碰巧就在 Github 上看到了一個 22.3k 的東西:

Python使用pyenv實現多環境管理

這就是 pyenv ,一個簡單的 Python 版本管理器,可以輕松地在各個 Python 版本之間進行切換。

好了廢話不說,進入正題。

2 安裝

安裝有兩種方式:

自動安裝 手動安裝2.1 自動安裝

curl https://pyenv.run | bash# 或curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash2.2 手動安裝

手動安裝大致分為三步:

安裝pyenv 配置環境變量 初始化

2.2.1 安裝 pyenv

筆者系統 Manjaro ,可以直接 yay 安裝:

yay -S pyenv

其他系統的可以使用 apt search / yum search 等看看軟件包倉庫有沒有,有的話直接安裝即可,沒有的話,可以 clone 安裝:

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

這一步是可選的 )接著就是編譯動態 bash 擴展進行加速:

cd ~/.pyenv && src/configure && make -C src

官方解釋說,不用害怕編譯失敗,因為仍然會正常工作。

2.2.2 配置環境變量

這一步就是把 PYENV 以及更新后的 PATH 配置成環境變量,官方文檔按照 shell 類型進行了分類,根據自己情況選擇即可。

2.2.2.1 bash

echo ’export PYENV_ROOT='$HOME/.pyenv'’ >> ~/.bash_profileecho ’export PATH='$PYENV_ROOT/bin:$PATH'’ >> ~/.bash_profile

2.2.2.2 Zsh

echo ’export PYENV_ROOT='$HOME/.pyenv'’ >> ~/.zshrcecho ’export PATH='$PYENV_ROOT/bin:$PATH'’ >> ~/.zshrc

2.2.2.3 Fish shell

set -Ux PYENV_ROOT $HOME/.pyenvset -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths

2.2.3 初始化

配置完環境變量后還要進行初始化操作,文檔同樣按 shell 類型進行了分類。

2.2.3.1 bash

echo -e ’if command -v pyenv 1>/dev/null 2>&1; thenn eval '$(pyenv init -)'nfi’ >> ~/.bash_profile

2.2.3.2 Zsh

echo -e ’if command -v pyenv 1>/dev/null 2>&1; thenn eval '$(pyenv init -)'nfi’ >> ~/.zshrc

2.2.3.3 Fish shell

echo -e ’nn# pyenv initnif command -v pyenv 1>/dev/null 2>&1n pyenv init - | sourcenend’ >> ~/.config/fish/config.fish2.3 測試

重新開啟一個終端,輸入 pyenv ,輸出如下信息就表明安裝成功了:

Python使用pyenv實現多環境管理

3 基本使用 pyenv commands:查看所有pyenv命令 pyenv exec:使用特定Python版本執行某條命令 pyenv global:設置或查看全局Python版本 pyenv hooks:列出給出的pyenv命令的鉤子腳本 pyenv init:配置shell環境 pyenv install:安裝某個版本的Python pyenv local:為某個應用設置特定的Python版本 pyenv prefix:顯示對應Python版本的路徑前綴 pyenv rehash:再哈希pyenv shims(不清楚有什么用,歡迎評論補充) pyenv root:顯示pyenv根目錄 pyenv shell:為某個shell設置特定的Python版本(與pyenv local類似) pyenv shims:列出當前存在的shims(pyenv的工作原理就是在一個叫shims的目錄下創建Python解釋器的“假版本”,尋找Python應用時先從該目錄查找) pyenv uninstall:卸載某個版本Python pyenv --version:顯示pyenv版本 pyenv version:顯示當前Python版本,等價于pyenv version-name+pyenv version-file pyenv version-file/version-name/version-origin:當前Python版本對應的文件/名字/位置 pyenv whence:列出已安裝的一個范圍內的Python版本,比如列出本地安裝的Python2到Python3的版本,可以使用pyenv whence 2to3 pyenv which:列出可執行文件的絕對路徑,比如pyenv which python可以列出python命令的絕對路徑4 實際應用

雖然上面說了這么多命令,但實際使用頻率高的命令并不多,主要有以下幾個:

pyenv version pyenv install pyenv global

一般安裝的步驟如下,先使用

pyenv install -l

查找需要安裝的 Python 版本:

Python使用pyenv實現多環境管理

這里還有一大串,就不全部截圖了,比如需要安裝 3.6.12 版本:

pyenv install 3.6.12

安裝之后可以使用

pyenv versions

查看安裝的版本,這里筆者安裝有兩個,一個是系統自帶的 Python3.9 ,一個是 pyenv 安裝的 Python3.6 :

Python使用pyenv實現多環境管理

接著使用

pyenv global 3.6.12

切換到新安裝的版本:

Python使用pyenv實現多環境管理

這樣就切換到了新安裝的版本,如果不是全局替換而是局部替換的話可以使用 pyenv local / pyenv shell 。

要注意的是切換版本后 pip 的版本也會不一樣,而且兩個版本使用 pip 安裝的包也是獨立的:

Python使用pyenv實現多環境管理

Python使用pyenv實現多環境管理

5 參考

1、 Github-pyenv

2、 Github-pyenv-installer

3、 知乎-Python環境Memo

到此這篇關于Python使用pyenv實現多環境管理的文章就介紹到這了,更多相關Python pyenv多環境管理內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
国产综合久久一区二区三区