您好,登錄后才能下訂單哦!
虛擬環境工具pyenv的使用方法?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!
使用
使用 pyenv 和 pyenv-virtualenv ,在 Linux 下完美隔離 python 各個版本
第 1 章:使用環境
注意: 本文的 Linux和Mac OS X 下進行,不涉及 windows下的安裝使用
清單
git
bash,zsh或者brew
pyenv
pyenv-virtualenv
1、安裝 git
在各大 Linux 的發行版下安裝 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
說明: 本文的所有安裝都嚴格遵守官方文檔,與官方文檔完全保持一致。
源碼git 地址:github.com/pyenv/pyenv
在終端中執行如下命令完成安裝:
首先把項目克隆下來,放在家目錄下的隱藏文件夾中:.pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
如果你是Mac用戶,可以使用brew命令來安裝
brew update
brew install pyenv
然后配置環境變量:
如果你使用 bash,就依次執行如下命令:
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,就依次執行如下命令:
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,就執行如下命令:
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init-)"\nfi' >> ~/.bash_profile
echo 命令的含義是:將引號中內容寫入某文件中
請注意,以上的三條 echo 命令的最后一條命令,請保證它引號中的內容處于 ~/.bashrc 或者 ~/.zshrc 的最底部。
因為在 pyenv 初始化期間會操作 path 環境變量,導致不可預測的行為。
查看文件的底部內容,可以使用 tail 命令,用法:tail ~/.bashrc 或者 tail ~/.zshrc,編輯文件可以使用 vim 或者 vscode
然后,在使用 pyenv 之前,需要初始化 shell 環境,執行如下命令
exec $SHELL或者source ~/.bashrc
同樣也可以關閉當前的終端窗口,重新啟動一個。
4、安裝 pyenv-virtualenv
源碼git 地址:github.com/pyenv/pyenv…
把插件克隆在剛才已經安裝完畢的 pyenv 的 plugins 文件夾中
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
如果你是Mac用戶可以使用brew命令來安裝
brew install pyenv-virtualenv
然后配置環境變量
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
如果你使用 bash,就執行如下命令:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
如果你使用 zsh,就執行如下命令:
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
最后,在使用 pyenv 之前,重新初始化 shell 環境,執行如下命令
exec $SHELL或者source ~/.bashrc
或者重啟一個終端窗口。
沒有出錯的話,此時已經完成了所有的安裝操作,如果提示錯誤,請檢查前文中的==路徑==和==環境變量==(請檢查是否使用對應系統環境的命令)是否配置正確,或者將操作回退,重新執行安裝命令
第 2 章:使用 pyenv
此處僅展示 pyenv 和 pyenv-virtualenv 的日常用法
檢查安裝是否正確
檢查 pyenv 的版本
pyenv version
查看 pyenv 已經托管了哪些 python 版本
pyenv versions
如果顯示了正常的版本信息,說明安裝成功,如果顯示類似于 command not found 之類的提示,說明安裝失敗,請查看第一章末尾的提示。
安裝 3.6.6 版本的 python
pyenv install 3.6.6
這里需要注意,某些情況下會安裝失敗,Build failed.
Don't panic,我們可以查看pyenv在github wiki里面準備的應對方案,原文地址 github.com/pyenv/pyenv…
摘錄如下,只需要執行對應的命令即可:
archlinux用戶
sudo pacman -S base-devel openssl zlib
Mac用戶
brew install openssl readline sqlite3 xz zlib
如果你使用的是OS X Mojave或者更高的版本(10.14+),還需要執行一下命令
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 用戶,確保已經安裝了 xz 工具
sudo yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel
Fedora >= 22 用戶,確保已經安裝了 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
安裝完這些補充的工具之后,再次執行:
pyenv install 3.6.6
就可以成功了,你可以不斷的使用pyenv versions來查看被 pyenv 托管的 python 版本,多版本之間不會沖突,完美共存
執行pyenv install,然后按下 tab 鍵,就可以看到所有可選的安裝版本
如何使用已經安裝的版本創建虛擬環境
pyenv和pyenv-virtualenv的協作可以這么理解:
pyenv 托管安裝的 python 版本,python-virtualenv 則調用對應的 python 版本
下面是如何創建和使用虛擬環境
1. 創建虛擬環境
首先需要創建一個虛擬環境,執行命令:
pyenv virtualenv 3.6.6 my-env
最后一個是環境的名字,可以隨便取。安裝成功會顯示:
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)
它寫明了該虛擬環境的絕對路徑。
2. 激活虛擬環境
在任意目錄下,執行命令:
pyenv activate my-env
復制代碼在終端命令行前面,會出現(my-env) 的提示,進入python環境可以看到版本為虛擬環境設定的3.6.6,使用pip --version,可以看到 pip 包安裝的絕對路徑
使用終端進入任意目錄,比如 ~/envtest
cd ~/envtest
然后在該目錄下執行:
pyenv local my-env
也可以激活創建好的虛擬環境,執行:
ls -al
local命令和之前的命令區別在于,在 ~/envtest 目錄下,會創建一個隱藏文件 .python-version,文件內容只包含一句話 my-env,只要使用終端進入 ~/test 目錄,就會自動激活虛擬環境
退出虛擬環境使用下面兩個中任意一條命令
pyenv deactivate # 或者
source deactivate
3. 刪除虛擬環境
隨著時間推移,你可能積攢很多虛擬環境,刪除虛擬環境可以使用命令
pyenv uninstall my-env或者rm -rf my-env直接刪除虛擬環境所在的目錄
第 3 章:更新 pyenv
如果是用 git 克隆的,更新則使用git pull命令
cd ~/.pyenv 或者 cd $(pyenv root)
git pull origin master
Mac用戶則使用brew命令
brew upgrade pyenv
第 4 章:卸載 pyenv
由于 pyenv 把一切都放在 ~/.pyenv 下了,所以Linux下卸載分為兩步
刪除環境變量
執行:rm -rf ~/.pyenv或者 rm -rf $(pyenv root)
Mac用戶卸載需要使用brew命令:
brew uninstall pyenv
感謝各位的閱讀!看完上述內容,你們對虛擬環境工具pyenv的使用方法大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。