django開發環境部署(二)——python版本控制器pyenv

python版本控制器pyenv

以前的那篇是說明了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

爲何選用pyenv

  • 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

step1:簡介

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

step2:功能

  • 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.

step3:安裝

基於GitHub的安裝

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

若是是mac平臺

$ brew update 
$ brew install pyenv //安裝
$ brew upgrade pyenv //升級

#安裝完成以後
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile //只須要執行一次便可

step4:使用

官方usage頁

$ 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是兩個重要命令 稍後作出單獨使用的解釋

step5:整合virtualenv

這個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的設定的,假設以前已經設定
相關文章
相關標籤/搜索