2013年5月2日 星期四

Debain 安裝 pythonbrew 徹底解脫 Python 的版本問題

筆者很喜歡 Python 這個程式語言,可是在使用上總會遭遇到版本的問題,例如在 Debian 這個作業系統上的 Python 版本總是會比較舊一些,導致有些套件的使用上感到不順手,特別是有些方便的 Package 只有在 Python 2.7.X 以上才能夠使用,偏偏 Python 2.7.X 目前只有升級到 Debian testing 才能夠使用,而筆者目前只想使用 Debian stable(Squeeze) 的套件、系統環境(雖然 testing 也頗為穩定)。

幸好這樣的問題可以靠 pythonbrew 來解決!
pythonbrew is a program to automate the building and installation of Python in the users $HOME.
簡而言之,pythonbrew 可以在不變動到系統主要環境的情況下,將 Python 安裝在一個隔離的路徑下,同時允許多個版本的 Python 存在,令使用者能夠自行切換 Python 版本與安裝不同版本的 Python 套件。

下文就是 pythonbrew 的安裝指令與簡要的使用方法。

安裝過程

0. 安裝必要套件
apt-get install libbz2-dev zlib1g-dev

1. 設定 PYTHONBREW_ROOT 環境變數
export PYTHONBREW_ROOT=/usr/local/pythonbrew

2. 安裝 Pythonbrew (會安裝在 /usr/local/pythonbrew/)
curl -kLO http://xrl.us/pythonbrewinstall
chmod +x pythonbrewinstall
./pythonbrewinstall

3. 新增最新版的 Python 安裝連結至 pythonbrew 設定檔內
vim /usr/local/pythonbrew/etc/config.cfg
在設定檔內加入以下設定:
[Python-2.7.4]
url = http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz
latest = True

[Python-3.3.1]
url = http://www.python.org/ftp/python/3.3.1/Python-3.3.1.tgz
latest = True
注意:
設定檔內的 latest = True 代表目前此版本是最新的,因此若 [Python-2.7.3] 區塊內有 latest = True 就得刪去,因為目前(2013/05/01)的 Pyhton 2.7 最新版本為 [Python-2.7.4]。同理若 [Python-3.3.0] 若有 latest = True 的設定,也得刪去!

4. 新增以下內容至家目錄下的 .bashrc 內
vim ~/.bashrc
加入以下設定:
export PYTHONBREW_ROOT=/usr/local/pythonbrew
[[ -s "/usr/local/pythonbrew/etc/bashrc" ]] && source "/usr/local/pythonbrew/etc/bashrc"

5. 重新載入 .bashrc 內的設定
source ~/.bashrc


使用方法


1. 列出目前安裝的 Python 版本
pythonbrew list

2. 安裝 Python (需指定版號)
pythonbrew install 2.7.4

3. 切換 Python 版本(需指定版號)
pythonbrew switch 2.7.4

4. 執行 Python 程式(若 switch 至 2.7.4,就代表以 2.7.4 的 Python 執行)
pythonbrew py file.py

5. 安裝套件(若安裝 2.7.X 的 Python,就會有 pip-2.7, easy_install-2.7 可以使用,同理推之)
pip-2.7 install <套件名稱>
easy_install-2.7 install <套件名稱>


p.s. 與 pythonbrew 相同用途的還有 virtualenv


參考資料
https://github.com/tritium21/pythonbrew
http://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-linux/

沒有留言: