以前的那篇是說明了django環境的site package徹底獨立出來了,可是使用的python解釋器仍是系統的,爲了繼續獨立出來,甚至是達到ruby的rvm的自由切換解釋器版本,那樣不更好,往後線上升級python版本的時候直接再本地切換版原本運行當前代碼測試豈不快哉,其實本篇已經不能算django開發環境了,是python開發環境部署python
在上篇的基礎上,繼續進行解釋器的版本管理器的安裝,這裏我使用的時pyenv,另一個管理器是pythonbrew,還有一個pythonz,至於爲何選擇pyenv,pythonbrew的GitHub主頁上給出瞭解釋以下git
英文翻譯水平太爛,只能搬原文github
Deprecated
This project is no longer under active development.
You are encouraged to try out pyenv instead.web
Depend on Python itself. pyenv was made from pure shell scripts. There is no bootstrap problem of Python.shell
Need to be loaded into your shell. Instead, pyenv's shim approach works by adding a directory to your $PATH.django
Manage virtualenv. Of course, you can create virtualenv yourself, or pyenv-virtualenv to automate the process.bootstrap
這個項目目前已經在慢慢取代了pythonbrew,GitHub主頁 https://github.com/yyuu/pyenvruby
pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
This project was forked from rbenv and ruby-build, and modified for Python.bash
Let you change the global Python version on a per-user basis.app
Provide support for per-project Python versions.
Allow you to override the Python version with an environment variable.
Search commands from multiple versions of Python at a time. This may be helpful to test across Python versions with tox.
This will get you going with the latest version of pyenv and make it easy to fork and contribute any changes back upstream.
一、克隆倉庫
$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv
二、指明環境變量
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
三、開啓shims and autocompletion
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
四、從新啓動shell讓其生效
$ exec $SHELL
五、這時候就能夠安裝另外版本的python了
#這裏會在$PYENV_ROOT/versions下生成一個目錄
$ pyenv install 2.7.6
六、重構shim,利用pyenv安裝完新version的py仍是利用安裝完新site package都須要執行這個操做
$ pyenv rehash
七、升級pyenv
#升級到最新版 $ cd ~/.pyenv $ git pull
#升級到指定版本 $ cd ~/.pyenv $ git fetch
$ git tag v0.1.0
$ git checkout v0.1.0
八、卸載指定py版本
通用方法
cd ~/.pyenv/versions
pyenv uninstall
暴力作法
rm -rf $pyversion
$ brew update
$ brew install pyenv //安裝
$ brew upgrade pyenv //升級
#安裝完成以後
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile //只須要執行一次便可
$ pyenv commands //列出可使用的命令
$ pyenv install 3.4.0
$ pyenv version //查看當前的python version
$ pyenv versions //列出pyenv安裝的全部組件,包括site package
$ pyenv which python3.4 //列出給定的python version可執行文件位置
$ pyenv whence 2to3 //列出pyenv安裝的python version
$ pyenv install --list //列出全部能夠安裝的包括python version,pypy等
$ pyenv rehash //Run this command after you install a new version of Python, or install a package that provides binaries.
$ pyenv uninstall //卸載
#下面關於pyenv local和pyenv global是兩個重要命令 稍後作出單獨使用的解釋
這個pyenv設計了插件來整合了virtualenv甚至還人性化的推出了virtualenvwrapper
一、安裝
$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
$ exec "$SHELL" #上面會把最近版本安裝到~/.pyenv/plugins/pyenv-virtualenv目錄
#mac下的安裝
$ brew install pyenv-virtualenv
二、使用
,關於pyevn的shell,local、global,會單獨寫出來講明$ pyenv virtualenv 2.7.6 venv-2.7.6 //建立一個使用2.7.6版本的解釋器的名稱爲my-virtual-env-2.7.6虛擬環境,存放在~/.pyenv/versions
$ pyenv virtualenv 3.4.0 venv-django1.6-3.4.0 //同理建立一個3.4解釋器的虛擬環境,就是前面我須要的徹底獨立的測試環境
#這裏有個注意的地方這裏的解釋器必須是經過pyenv安裝的解釋器,若是不加參數,以下
$ pyenv virtualenv django1.6 //那麼這裏會使用系統的python version建立虛擬環境,若是須要加參數,就必須是pyenv安裝的版本
#激活虛擬環境,這個虛擬環境必須是pyenv建立存在的
$ pyenv activate venv33
#退出虛擬環境
$ pyenv deactivate
\\固然依舊可使用deactivate,可是這裏不推薦的緣由是採用deactivate以後仍舊是須要本身取消pyenv local的設定的,假設以前已經設定