python系列(五)centos6.x
- 2020 年 1 月 10 日
- 筆記
部落客QQ:819594300
部落格地址:http://zpf666.blog.51cto.com/
有什麼疑問的朋友可以聯繫部落客,部落客會幫你們解答,謝謝支援!
使用pyenv+virtualenv方式部署python多版本
pyenvvs virtualenv
pyenv 是針對 python 版本的管理,通過修改環境變數的方式實現;
virtualenv 是針對python的包的多版本管理,通過將python包安裝到一個模組來作為python的包虛擬環境,通過切換目錄來實現不同包環境間的切換。
pyenv原理
pyenv 的美好之處在於,它並沒有使用將不同的 $PATH 植入不同的 shell 這種高耦合的工作方式,而是簡單地在 $PATH 的最前面插入了一個墊片路徑(shims):
~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有對Python 可執行文件的查找都會首先被這個 shims 路徑截獲,從而架空了後面的系統路徑。
pyenv 安裝使用 (安裝使用網路yum源)
下面開始正式安裝:
1)確認一下系統版本

2)安裝依賴包

截圖中內容如下:
yum-y install gcc python-devel readline readline-devel readline-static opensslopenssl-devel openssl-static sqlite-devel bzip2-devel bzip2-libspython-setuptools

3)安裝pyenv
pyenv需要git工具,需要先安裝git工具

pyenv提供了自動安裝的工具,執行命令安裝即可:

截圖中地址如下: curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer| bash
還有一個網址,也是提供pyenv自動安裝的工具的,這兩個網站都一樣,用哪個都行。
curl -Lhttps://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

安裝結束後,在結尾會出現上面這三行。
看是否安裝成功,執行下面的命令:

如果返回的值是0,就表示安裝成功。
如果想手動安裝,可以執行此命令:
將 pyenv 檢出到你想安裝的目錄。建議路徑為:$HOME/.pyenv
$ cd
$ git clone git://github.com/yyuu/pyenv.git.pyenv
4)添加環境變數

該目錄專用於當前用戶bash shell的bash資訊,當登錄時以及每次打開新的shell時,該該文件被讀取
在末尾新增加以下幾行內容:

截圖中內容如下:
export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
exportPATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init-)"
fi
添加完畢後,讓其立即生效:

至此,pyenv安裝也就完成了,接下來看看都有哪些python版本可以安裝。



5)我們看一下,centos6.5默認安裝了什麼版本的python:

從上圖可以看出,centos6.5默認安裝的是2.6.6版本。
那現在我們安裝一個3.6.1版本試一試:

6)創建虛擬環境

其中my-virtual-env-3.6.1是自定義的名稱,你也可以自己自定義。
7)列出當前虛擬環境

8)激活虛擬環境

9)激活虛擬環境後,需要執行下面命令,更新一下資料庫

然後直接進入python查看:

10)查看當前正在使用的版本

註:其中的星號表示當前正在使用的版本
11)退出虛擬環境

從上圖可以看出,我們真實環境依然是2.6.6版本,而虛擬環境裡面是3.6.1版本。
12)刪除虛擬環境

出現一個?,輸入一個y,繼續執行即可。
如果想在兩個版本之間切換,在每次想使用3.6.1版本的時候就輸入:
pyenv activate my-virtual-env-3.6.1
再輸入python,就可以進3.6.1版本了。
不想用3.6.1版本了,就退出來,使用:
pyenvdeactivate命令就退出來了,可以使用我們的2.6.6版本。
如果不想那麼麻煩怎麼辦?
好辦,那就再創建一個虛擬環境,用來運行2.6.6版本。

說明:若不指定python 版本,則默認使用當前環境python版本。
再看一下當前所有的虛擬環境:

激活2.6.6虛擬環境:

更新一下資料庫:

至此,2.6.6和3.6.1的兩個虛擬環境都有了,現在開始更方便的切換:

就只需要這兩條命令就可以在當前真實環境下來回的切換兩個版本了,是不是很方便呢。
額外增加一個知識點說明:
如果你只有3.6.1虛擬環境,而沒有創建2.6.6虛擬環境,當你執行:
pyenvlocal my-virtual-env-3.6.1
即:在當前環境下,切換了3.6.1版本,切換過來是沒有問題,主要是你想過沒有,當你想用2.6.6版本怎麼辦?切不回去了,因為沒有2.6.6虛擬環境,你執行不了:
pyenvlocal my-virtual-env-2.6.6這個命令,這時候你再去新創建一個2.6.6虛擬環境,已經來不及了,具體的解決辦法就是去~/.bashrc裡面把新增加那幾行刪除或注釋,然後刪除3.6.1虛擬環境,最後重啟系統即可真實環境恢復python2.6.6版本,然後你再把上面的實驗再來一遍,記住要創建兩個虛擬環境,這樣來回切換就很方便了。