Jusene's Blog

python版本隔离

字数统计: 937阅读时长: 3 min
2017/02/28 Share

python版本

其实刚开始学python的时候蛮纠结的,到底是学python2.7还是学python3.x,因为两个版本不怎么兼容,python2.7代表的应用广泛,python3.x代表着未来,所有在纠结的过程,不如自己试试两个版本python,希望两种版本能够切换自如,下面介绍两款python版本控制工具。

pyenv

clone pyenv 至家目录

git clone git://github.com/yyuu/pyenv.git ~/.pyenv

修改环境变量

1
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
2
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
3
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

重启当前shell

exec $SHELL -l

pyenv versions命令

1
* system(set by /root/.pyenv/version)  正常

pyenv安装好后会在系统PATH中插入shims路径,每次执行python相关的可执行时,会优先在shims中寻找python路径

pyenv管理多版本

查看可安装的版本列表

  • pyenv install -list
    安装指定的python版本
  • pyenv install 3.4.1
    切换当前目录python版本为3.4.1
  • pyenv local 3.4.1
    切换全局目录python版本为3.4.1
  • pyenv global 3.4.1
    刷新shims
  • pyenv rehash

commands 列出pyenv的所有可用命令

  • local 设置或列出当前环境下python版本号
  • global 设置或列出全局环境下python版本号
  • shell 设置或列出shell环境下python版本
  • install 安装指定的python版本
  • uninstall 卸载指定的python版本
  • rehash 重新加载pyenv的shims路径(安装完python版本后需要执行该命令)
  • version 展开当前python的版本号及其生效的路径
  • versions 列出pyenv管控的所有可用python版本
  • which 列出要使用命令绝对路径
  • whence 列出后缀命令的所有可用的版本

virtualenv

virtualenv 用来创建一个为应用“隔离”的python运行环境

yum install -y python-pip python-devl

pip install virtualenv

需要强调的是:virtualenv不是通过多版本管理的方式来实现系统同时兼容多python环境,而是其通过在工作目录中虚拟完整的python环境来实现python多环境并存。

virtualenv 【opotion】dest_dir

创建virtualenv /data/python3.4.1/ 的虚拟目录

  • –version 显示当前版本号
  • -h –help 显示帮助信息
  • -v –verbose 显示详细信息
  • -q –quit 不显示详细信息
  • -p PYTHON_EXE –python=PYTHON_EXE 指定所用的python解释器版本,默认使用当前系统的python版本
  • –clear 清空非root用户的安装,并从头开始创建隔离环境
  • –no-site-packages 令隔离环境不能访问系统全局的site-packahes目录
  • –system-site-packages 令隔离环境可以访问系统全局的site-packages目录
  • –unzip-setuptools 安装时解压setuptools或distribute
  • –relocatable 重定位某个已存在的隔离环境,使用该选项将修正脚本,并令所有.pth文件使用相应路径
  • –distribute 使用distribute代替setuptools,也可以设置变量VIRTUALENV_DISTRINUTE达到同样的效果
  • –extra-search-dir=SEARCH_DIRS 用于查找setuptools、distribute、pip发布包的目录,可以添加任意数量
  • –never-download 禁止从网上下载任何数据。此时在本地搜索发布包失败,就会报错
  • –prompt==PROMPT 定义隔离环境的命令行前缀

eg:

1
virtualenv  /data/python
2
source /data/python/bin/activate
3
deactivate  退出

使用virtualenvwrapper管理虚拟环境

pip install virtualenvwrapper

vim ~/.bash_profile

source /usr/local/bin/virtualenvwrapper.sh

在~/Envs中创建pythonEnv文件夹中

mkvirtualenv pythonEnv

mkvirtualenv pythonEnv -p python3.5

  • workon pythonEnv 切换环境
  • deactivate 退出
  • rmvirtualenv pythonEnv 删除环境

其他命令

  • lsvirtualenv 列举所以的环境
  • cdvirtualenv 导航到当前激活的虚拟环境的目录中,比如说这样你就能够浏览它的site-packages
  • cdsitepackages 和上面的类似,但是是直接进入site-packages目录中
  • lssitepackages 显示site-packages目录中的内容

python

CATALOG
  1. 1. python版本
    1. 1.1. pyenv
    2. 1.2. virtualenv