溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

虛擬環(huán)境工具pyenv的使用方法

發(fā)布時(shí)間:2020-08-05 14:31:46 來源:億速云 閱讀:181 作者:小新 欄目:編程語言

虛擬環(huán)境工具pyenv的使用方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

使用

使用 pyenv 和 pyenv-virtualenv ,在 Linux 下完美隔離 python 各個(gè)版本

第 1 章:使用環(huán)境

注意: 本文的 Linux和Mac OS X 下進(jìn)行,不涉及 windows下的安裝使用

清單

git

bash,zsh或者brew

pyenv

pyenv-virtualenv

1、安裝 git

在各大 Linux 的發(fā)行版下安裝 git 都非常簡單,此處只展示部分示例

archlinux

sudo pacman -S git

debian/ubuntu

sudo apt install git

centos

sudo yum install git

Mac

brew install git

2、開啟終端

Ubuntu下使用 shell

Ctrl + Alt + t 快捷鍵打開終端

3、安裝 pyenv

說明: 本文的所有安裝都嚴(yán)格遵守官方文檔,與官方文檔完全保持一致。

源碼git 地址:github.com/pyenv/pyenv

在終端中執(zhí)行如下命令完成安裝:

首先把項(xiàng)目克隆下來,放在家目錄下的隱藏文件夾中:.pyenv

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

如果你是Mac用戶,可以使用brew命令來安裝

brew update

brew install pyenv

然后配置環(huán)境變量:

如果你使用 bash,就依次執(zhí)行如下命令:

echo '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

如果你使用 zsh,就依次執(zhí)行如下命令:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc

echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc

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

如果你用Mac,就執(zhí)行如下命令:

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

echo 命令的含義是:將引號(hào)中內(nèi)容寫入某文件中

請(qǐng)注意,以上的三條 echo 命令的最后一條命令,請(qǐng)保證它引號(hào)中的內(nèi)容處于 ~/.bashrc 或者 ~/.zshrc 的最底部。

因?yàn)樵?pyenv 初始化期間會(huì)操作 path 環(huán)境變量,導(dǎo)致不可預(yù)測(cè)的行為。

查看文件的底部內(nèi)容,可以使用 tail 命令,用法:tail ~/.bashrc 或者 tail ~/.zshrc,編輯文件可以使用 vim 或者 vscode

然后,在使用 pyenv 之前,需要初始化 shell 環(huán)境,執(zhí)行如下命令

exec $SHELL或者source ~/.bashrc

同樣也可以關(guān)閉當(dāng)前的終端窗口,重新啟動(dòng)一個(gè)。

4、安裝 pyenv-virtualenv

源碼git 地址:github.com/pyenv/pyenv…

把插件克隆在剛才已經(jīng)安裝完畢的 pyenv 的 plugins 文件夾中

git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv

如果你是Mac用戶可以使用brew命令來安裝

brew install pyenv-virtualenv

然后配置環(huán)境變量

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

如果你使用 bash,就執(zhí)行如下命令:

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc

如果你使用 zsh,就執(zhí)行如下命令:

echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc

最后,在使用 pyenv 之前,重新初始化 shell 環(huán)境,執(zhí)行如下命令

exec $SHELL或者source ~/.bashrc

或者重啟一個(gè)終端窗口。

沒有出錯(cuò)的話,此時(shí)已經(jīng)完成了所有的安裝操作,如果提示錯(cuò)誤,請(qǐng)檢查前文中的==路徑==和==環(huán)境變量==(請(qǐng)檢查是否使用對(duì)應(yīng)系統(tǒng)環(huán)境的命令)是否配置正確,或者將操作回退,重新執(zhí)行安裝命令

第 2 章:使用 pyenv

此處僅展示 pyenv 和 pyenv-virtualenv 的日常用法

檢查安裝是否正確

檢查 pyenv 的版本

pyenv version

查看 pyenv 已經(jīng)托管了哪些 python 版本

pyenv versions

如果顯示了正常的版本信息,說明安裝成功,如果顯示類似于 command not found 之類的提示,說明安裝失敗,請(qǐng)查看第一章末尾的提示。

安裝 3.6.6 版本的 python

pyenv install 3.6.6

這里需要注意,某些情況下會(huì)安裝失敗,Build failed.

Don't panic,我們可以查看pyenv在github wiki里面準(zhǔn)備的應(yīng)對(duì)方案,原文地址 github.com/pyenv/pyenv…

摘錄如下,只需要執(zhí)行對(duì)應(yīng)的命令即可:

archlinux用戶

sudo pacman -S base-devel openssl zlib

Mac用戶

brew install openssl readline sqlite3 xz zlib

如果你使用的是OS X Mojave或者更高的版本(10.14+),還需要執(zhí)行一下命令

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Ubuntu/Debian/Mint用戶

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev

CentOS/Fedora <= 21 用戶,確保已經(jīng)安裝了 xz 工具

sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel

Fedora  >= 22 用戶,確保已經(jīng)安裝了 xz 工具

sudo dnf install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel

openSUSE用戶

zypper install gcc automake openssl-devel ncurses-devel readline-devel zlib-devel tk-devel

Solus 用戶

sudo eopkg it -c system.devel

sudo eopkg install git gcc make zlib-devel bzip2-devel readline-devel sqlite3-devel openssl-devel tk-devel

Linuxbrew用戶

brew install bzip2 openssl readline sqlite xz

安裝完這些補(bǔ)充的工具之后,再次執(zhí)行:

pyenv install 3.6.6

就可以成功了,你可以不斷的使用pyenv versions來查看被 pyenv 托管的 python 版本,多版本之間不會(huì)沖突,完美共存

執(zhí)行pyenv install,然后按下  tab  鍵,就可以看到所有可選的安裝版本

如何使用已經(jīng)安裝的版本創(chuàng)建虛擬環(huán)境

pyenv和pyenv-virtualenv的協(xié)作可以這么理解:

pyenv 托管安裝的 python 版本,python-virtualenv 則調(diào)用對(duì)應(yīng)的 python 版本

下面是如何創(chuàng)建和使用虛擬環(huán)境

1. 創(chuàng)建虛擬環(huán)境

首先需要?jiǎng)?chuàng)建一個(gè)虛擬環(huán)境,執(zhí)行命令:

pyenv virtualenv 3.6.6 my-env

最后一個(gè)是環(huán)境的名字,可以隨便取。安裝成功會(huì)顯示:

Looking in links: /tmp/tmp0eywgc7v

Requirement already satisfied: setuptools in /home/vic/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (39.0.1)

Requirement already satisfied: pip in /home/vic/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (10.0.1)

它寫明了該虛擬環(huán)境的絕對(duì)路徑。

2. 激活虛擬環(huán)境

在任意目錄下,執(zhí)行命令:

pyenv activate my-env

復(fù)制代碼在終端命令行前面,會(huì)出現(xiàn)(my-env) 的提示,進(jìn)入python環(huán)境可以看到版本為虛擬環(huán)境設(shè)定的3.6.6,使用pip --version,可以看到 pip 包安裝的絕對(duì)路徑

使用終端進(jìn)入任意目錄,比如 ~/envtest

cd ~/envtest

然后在該目錄下執(zhí)行:

pyenv local my-env

也可以激活創(chuàng)建好的虛擬環(huán)境,執(zhí)行:

ls -al

local命令和之前的命令區(qū)別在于,在 ~/envtest 目錄下,會(huì)創(chuàng)建一個(gè)隱藏文件 .python-version,文件內(nèi)容只包含一句話 my-env,只要使用終端進(jìn)入 ~/test 目錄,就會(huì)自動(dòng)激活虛擬環(huán)境

退出虛擬環(huán)境使用下面兩個(gè)中任意一條命令

pyenv deactivate  # 或者

source deactivate

3. 刪除虛擬環(huán)境

隨著時(shí)間推移,你可能積攢很多虛擬環(huán)境,刪除虛擬環(huán)境可以使用命令

pyenv uninstall my-env或者rm -rf my-env直接刪除虛擬環(huán)境所在的目錄

第 3 章:更新 pyenv

如果是用 git 克隆的,更新則使用git pull命令

cd ~/.pyenv 或者 cd $(pyenv root)

git pull origin master

Mac用戶則使用brew命令

brew upgrade pyenv

第 4 章:卸載 pyenv

由于 pyenv 把一切都放在 ~/.pyenv 下了,所以Linux下卸載分為兩步

刪除環(huán)境變量

執(zhí)行:rm -rf ~/.pyenv或者 rm -rf $(pyenv root)

Mac用戶卸載需要使用brew命令:

brew uninstall pyenv

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)虛擬環(huán)境工具pyenv的使用方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI