安裝
系統環境:CentOS 6.5
安裝依賴
yum -y install gcc gcc-c++ make git patch openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel bzip2-libs
安裝pyenv
curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
配置環境變量
官方提供方法:
echo -e '\n#pyenv' >>~/.bashrc echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc
直接在bashrc文件中寫入:
vim /root/.bashrc #這段代碼的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面運行pyenv命令。 保存在~/.bashrc 文件中是為了每次用戶登陸后自動生效。 export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then export PATH="${PYENV_ROOT}/bin:${PATH}" eval "$(pyenv init -)" fi #如果你是第一次運行命令並且沒有注銷的話, 這一段是不會生效的, 我們還需要運行下面的命令令其生效 source ~/.bashrc
pyenv用法
常用命令:
pyenv version # 查看當前系統使用的python版本 pyenv versions # 查看當前系統擁有的python版本 pyenv install 3.4.1 # 安裝3.4.1,可使用-v參數查看詳細輸出 pyenv uninstall 3.4.1 # 卸載 pyenv local 3.4.1 # local僅對當前目錄及子目錄生效,告訴當前目錄使用版本2.7.5, pyenv global # 告訴全局環境使用某個版本,為了不破壞系統環境,不建議使用global設置全局版本 pyenv rehash # 重建環境變量,每當你增刪 Python 版本或帶有可執行文件的包(如 pip)以后,都應該執行一次本命令
示例
安裝某個版本的python
首先我們可以查看一下有哪些版本的python 可以安裝
pyenv install --list
結果如下:
2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 ...
接下來, 作為例子我們安裝兩個版本 (2.7.1 和 3.3.5)
pyenv install 2.7.1
pyenv install 3.3.5
安裝完畢后, 我們可以查看安裝的情況
pyenv versions
輸出結果如下:
* system (set by /home/tony/.pyenv/version) 2.7.1 3.3.5
簡單來說我們已經在這台機器上安裝了三個版本的python
system 代表當前系統的python 版本
2.7.1 和 3.3.5是我們用pyenv安裝的
*表示當前的python版本, 可以看到, 我們還在使用的是默認的system 自帶的python版本
切換python版本做一下測試
既然已經安裝了兩個其他版本的python, 我們來做一下測試
pyenv global 2.7.1 #全局進行切換到python 2.7.1版本 pyenv local 2.7.1 #只針對當前目錄及其子目錄切換python 2.7.1版本
這條命令就是將當前python 版本切換到2.7.1
再次運行 pyenv versions, 結果如下:
system * 2.7.1 (set by /home/tony/.pyenv/version) 3.3.5
可以看到當前的python 版本已經切換到2.7.1了, 如果還不放心, 直接運行 ‘python’ 命令進行驗證:
tony@ubuntu:~$ python Python 2.7.1 (r271:86832, May 9 2014, 01:07:17) [GCC 4.8.2] on linux3 Type "help", "copyright", "credits" or "license" for more information. >>>
這里可以清楚看到, 當前版本確實是2.7.1
同理, 我們可以繼續用python global在各個版本之間進行切換, 如果要切換回系統版本, 請用:
pyenv global system #全局進行切換到系統自帶python pyenv local system #只針對當前目錄及其子目錄切換到系統自帶python
如果要卸載某個版本的python, 可以這樣:
pyenv uninstall 2.7.1
pyenv virtualenv用法
利用virtualenv 創建虛擬python環境
pyenv通過插件,可以很好的和virtualenv一起工作,通過整合virtualenv,pyenv實現了真正意義上的環境隔離,每個項目都相當於使用一個單獨的解釋器。
首先我們創建一個2.7.1的虛擬環境
pyenv virtualenv 2.7.1 env271
這條命令在本機上創建了一個名為env271的python虛擬環境,這個環境的真實目錄位於:~/.pyenv/versions/
注意,命令中的 ‘2.7.1’ 必須是一個安裝前面步驟已經安裝好的python版本, 否則會出錯。
然后我們可以繼續通過 ‘pyenv versions’ 命令來查看當前的虛擬環境, 結果如下:
* system (set by /home/tony/.pyenv/version) 2.7.1 3.3.5
env271
這里我們可以看到, 除了已經安裝的python版本, 我們多出了一個env271的python虛擬環境
切換和使用新的python虛擬環境
切換到新的虛擬環境的命令為
pyenv activate env271
接下來我們的python環境就已經切換到2.7.1的虛擬環境了, 運行 ‘python’ 命令認證
(env271)tony@ubuntu:~$ python Python 2.7.1 (r271:86832, May 9 2014, 01:07:17) [GCC 4.8.2] on linux3 Type "help", "copyright", "credits" or "license" for more information. >>>
可以看到, python版本已經是2.7.1, 而且是在虛擬環境之中 (env271)
下面基本上你就可以在這個虛擬環境里面為所欲為了 :) 再也不用擔心系統路徑被搞亂的問題了。
如果要切換回系統環境, 運行這個命令即可
pyenv deactivate
那如果要刪除這個虛擬環境呢?
pyenv virtualenv-delete env271
至此大功告成!
參考資料: