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的设定的,假设以前已经设定
相关文章
相关标签/搜索