日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

pyenv 让 python 版本完美切换

發布時間:2024/10/12 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pyenv 让 python 版本完美切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

我覺得如果使用 python 開發的話,還是在 unix/linux 的環境下吧,shell 工具的效率比 windows 高得多,盡管 windows 下也有 cmder 這種神器,而且現在 windows store 也很好的開發出了 linux 子系統,但是瑕疵非常多,unix/linux 才是完美的環境。本文用到的是 archlinux ,另外 debian/ubuntu、centos 也完全適用。mac 用戶也可以參考,不過 homebrew 也提供了非常方便的安裝方法,但是建議使用文本做法。

背景

python 版本比較多,2 和 3 相差非常大,很多項目需要跑在同一臺服務器上,我們可以選擇直接運行,也可以選擇使用 docker。如果用 docker 那就不需要隔離環境了,如果要直接運行在服務器上,那就必須有隔離環境。比如有的項目使用 python 3.5,有的項目使用 python 3.7,此時我們可以借助 pyenv 幫助我們完美的隔離環境,讓多個版本的 python 沒有任何沖突,完美共存。

任務

使用 pyenv 和 pyenv-virtualenv ,在 linux 下完美隔離 python 各個版本

第 1 章:使用環境

  • 操作系統:archlinux
  • shell:zsh

請注意,接下來所有的操作都在 archlinux 下進行,本文不涉及 windows

清單

  • git
  • zsh 或者 bash
  • pyenv
  • pyenv-virtualenv
  • 1、安裝 git

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

    archlinux

    sudo pacman -S git

    debian/ubuntu

    sudo apt-get install git

    centos

    sudo yum install git

    2、開啟終端

    本文使用 zsh

    3、安裝 pyenv

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

    git 地址:https://github.com/pyenv/pyenv

    在你的終端中執行如下命令,安全無毒,請放心食用:

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

    git clone https://github.com/pyenv/pyenv.git ~/.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

    echo 命令的含義是:將引號中內容寫入某文件中
    請注意,以上的三條 echo 命令的最后一條長長的命令,請你保證它引號中的內容處于 ~/.bashrc 或者 ~/.zshrc 的最底部。
    因為在 pyenv 初始化期間會操作 path 環境變量,導致不可預測的行為。
    查看文件的底部內容,可以使用 tail 命令,用法:tail ~/.bashrc 或者 tail ~/.zshrc,編輯文件可以使用 vim 或者 vscode

    最后,在使用 pyenv 之前,重新初始化 shell 環境,執行如下命令

    exec $SHELL

    不執行該命令也是完全可以的,你可以關閉當前的終端窗口,重新啟動一個就可以了。

    此時,你已經完成了 pyenv 的安裝了,你使用可以它的全部命令了,但是我建議你先別急著用,一口氣裝完 pyenv 的一個插件,那就是 pyenv-virtualenv

    4、安裝 pyenv-virtualenv

    git 地址:https://github.com/pyenv/pyenv-virtualenv

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

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

    然后配置環境變量

    如果你使用 bash,就執行如下命令:

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

    如果你使用 zsh,就執行如下命令:

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

    最后,在使用 pyenv 之前,重新初始化 shell 環境,執行如下命令

    exec $SHELL

    不執行該命令也是完全可以的,你可以關閉當前的終端窗口,重新啟動一個就可以了。

    到此,我們的所有重要安裝已經全部完成了,可以開始體驗了。

    第 2 章:使用 pyenv

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

    檢查安裝是否正確

    檢查 pyenv 的版本

    pyenv version

    查看 pyenv 已經托管了哪些 python 版本

    pyenv versions

    如果你看到了正常的版本信息,就說明可以了,如果看到了類似于 command not found 之類的,就說明安裝失敗了。

    安裝 3.6.6 版本的 python

    pyenv install 3.6.6

    這里有個問題,某些情況下會安裝失敗,報錯就告訴你 Build failed

    這個時候,pyenv 已經在它的 github wiki 里面為我們準備了一篇錯誤應對方案,原文地址 https://github.com/pyenv/pyenv/wiki

    大意如下,只需要執行對應的命令即可:

    archlinux 用戶

    sudo pacman -S base-devel openssl zlib

    mac 用戶

    brew install openssl readline sqlite3 xz zlib

    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 鍵,就可以看到所有可選的安裝版本了

    使用剛才安裝的 python 3.6.6

    首先我們需要明確一個概念,pyenv 和 pyenv-virtualenv 他們是如何協作的,你可以這么認為:

    pyenv 托管 python 版本,virtualenv 使用 python 版本

    好了,之前已經裝好了版本,那么現在就來使用吧

    第 1 步:創建虛擬環境

    首先需要創建一個虛擬環境,執行命令:

    pyenv virtualenv 3.6.6 my-env

    它的格式就是這樣固定的,最后一個是你自己想要的環境的名字,可以隨便取。稍等片刻,你將會看到:

    Looking in links: /tmp/tmp0eywgc7v
    Requirement already satisfied: setuptools in /home/joit/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (39.0.1)
    Requirement already satisfied: pip in /home/joit/.pyenv/versions/3.6.6/envs/my-env/lib/python3.6/site-packages (10.0.1)

    類似于這樣的回顯信息,說明環境已經創建成功了,它還告訴了你,該虛擬環境的絕對路徑,如果你進去看了,你就會發現,所謂的虛擬環境,就是把 python 裝在 pyenv 的安裝目錄的某個文件夾中,以供它自己調用。

    第 2 步:激活虛擬環境

    在任意目錄下,執行命令:

    pyenv activate my-env

    你會發現,在你的終端里面,多了一個類似于 (my-env) 這樣的一個東西,這時候你如果執行:

    python --version

    那就是 python 3.6.6 了

    如果你執行:

    pip --version

    它會告訴你 pip 包安裝的絕對路徑,也是 pyenv 安裝目錄下的某個文件夾

    如果你關掉了終端,那么下次啟動你又得重新激活一次了,你可以使用如下命令:

    首先 cd 到某一個目錄,比如 ~/test

    cd ~/test

    然后在該目錄下執行:

    pyenv local my-env

    你會發現已經被激活了,那么 local 命令和剛才有啥不同呢。如果你執行:

    ls -al

    你就會發現,在 ~/test 目錄下,有個隱藏文件 .python-version,你可以看到這個文件里面,只寫了一句話 my-env

    這樣你只要進入 ~/test 目錄,就會自動激活虛擬環境

    在虛擬環境下,你如果直接執行

    python

    就會進入到 python 的交互環境

    如果你寫了一個文件,名字叫做 app.py ,里面的內容只有一句代碼:print(1)

    然后執行:

    python app.py

    這時候,系統就會調用虛擬環境中的 python 解釋器來執行這些代碼了

    第 3 章:更新 pyenv

    由于我們是 git 克隆的,所以更新非常簡單

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

    第 4 章:卸載 pyenv

    由于 pyenv 把一切都放在 ~/.pyenv 下了,所以卸載很方便,兩個步驟就行了

    首先你需要刪除環境變量

    然后你需要執行:

    rm -rf ~/.pyenv 或者 rm -rf $(pyenv root)



    作者:JoiT
    鏈接:https://www.jianshu.com/p/3e93311fe6cb
    來源:簡書
    簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

    轉載于:https://www.cnblogs.com/orangehero/p/11117760.html

    總結

    以上是生活随笔為你收集整理的pyenv 让 python 版本完美切换的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。