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

风格不统一 提交于 2019-12-03 03:20:01

起因

爲了以下目的才有了本文:

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

前提

配置過程中需要用到以下軟件:

  • 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 安裝後繼續。

安裝 Pythonz

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

安裝步驟如下:

# 默認安裝在 ~/.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 :

# 查看支持的 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 helppythonz

安裝 virtualenv 和 virtualenvwrapper

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

安裝步驟如下:

# 安裝 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>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!