設置一個支持多種版本的 Python 環境

原由

爲了如下目的纔有了本文:python

  1. 學習 Python 3 。
  2. 使系統 Python 環境再也不受污染。

前提

配置過程中須要用到如下軟件:linux

  • Python 2.7.3 ( 通過python -V確認 )
  • pip ( 通過 pip help確認 )
  • curl ( 通過 curl --help 確認 )
  • libsqlite3-dev ( 可選,若要 Python 支持 sqlite3 ,請先安裝 sudo apt-get instll libsqlite3-dev )
  • libssl-dev (可選,若要 Python 支持 ssl , 請先安裝 sudo apt-get install libssl-dev )

若未安裝請參考 Google 安裝後繼續。git

安裝 Pythonz

Pythonz 能夠讓用戶在 $home 目錄下通過源碼自動構建和安裝多種版本的 Python ,其源自 pythonbrew 。個人覺得 Pythonz 功能簡單就幫你安裝各種版本的 Python ,至少目前是這樣。github

安裝步驟以下:sql

# 默認安裝在 ~/.pythonz 下  
curl -kL https://raw.github.com/saghul/pythonz/master/pythonz-install | bash
# 配置 ~/.zshrc ( zsh用戶,就像我 ) 或 ~/.bashrc ( bash用戶 )
echo "[[ -s $HOME/.pythonz/etc/bashrc ]] && source $HOME/.pythonz/etc/bashrc" >> ~/.zshrc

安裝 Python

通過 Pythonz 安裝各種 Python :django

# 查看支持的 Python
pythonz list -a

# 安裝 Python 2.7.3  
pythonz install 2.7.3    

# 安裝 Python 3.3.0  
pythonz install 3.3.0  

# 安裝 Pypy 1.9
pythonz install -t pypy --url https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2 1.9

# 查看已安裝的 Python
pythonz list

詳細命令請見pythonz helppythonzbash

安裝 virtualenv 和 virtualenvwrapper

virtualenv 用於隔離 Python 環境,而 virtualenvwrapper 爲前者提供了一些命令上的封裝方便使用。app

安裝步驟以下:curl

# 安裝 virtualenvwrapper ,會自動安裝依賴 virtualenv  
sudo pip install virtualenvwrapper  

#配置 ~/.zshrc 或 ~/.bashrc  
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.zshrc

創建 Python 環境

通過 virtualenvwrapper 的命令 mkvirtualenv 命令創建不一樣版本的乾淨的獨立 Python 環境。工具

創建三個版本的 Python 環境:

# 針對 Python 2.7.3   
mkvirtualenv -p ~/.pythonz/pythons/CPython-2.7.3/bin/python cpython273 && deactivate  

# 針對 Python 3.3.0  
mkvirtualenv -p ~/.pythonz/pythons/CPython-3.3.0/bin/python3 cpython330 && deactivate

# 針對 Pypy 1.9  
mkvirtualenv -p ~/.pythonz/pythons/PyPy-1.9/bin/python pypy19 && deactivate

以上環境基本沒有任何包 ( Python 2.7.3 和 pypy 1.9 會有個 wsgiref 包, Python 3.3.0 會有個 distribute 包 ) ; 默認都支持 pipeasy_install 工具。 可通過 pip freeze 命令查看當前環境安裝的包。

使用 Python 環境

個人使用 Python 環境流程:

# 查看當前擁有的環境
lsvirtualenv

# 從以前創建的 Python 環境中複製一個過來用於學習或開發;
# 基本上不會在那三個基礎環境安裝任何東西。
# 複製後會自動切換進複製後的 Python 環境 ( 以下爲: cpython273_test ) 
cpvirtualenv cpython273 cpython273_test

# 查看當前 Python 版本
python -V

# 查看當前環境已安裝的包
pip freeze

# 安裝 Django
pip install django

# 再次查看 
pip freeze

# 退出當前虛擬環境返回系統環境
deactivate

想瞭解 virtualenvwrapper 更多信息,請參考 virtualenvwrapper 文檔

本文在 Utubut 12.04 下配置成功。

附:配置快捷命令

配置快捷命令,以下爲 zsh 中的,bash 請參考 Google

<pre class="prettyprint linenums"> # 編輯 ~/.zshrc 新增如下內容 alias v='workon' alias v.ls='lsvirtualenv' alias v.cp='cpvirtualenv' alias v.quit='deactivate' alias v.mk='mkvirtualenv' alias v.rm='rmvirtualenv' alias v.switch='workon' </pre>

相關文章
相關標籤/搜索