python开发的时候,尤其是多个项目开发的时候,经常会遇到以下两个问题:

  1. 不同项目使用了不同版本的python
  2. 不同项目的第三方依赖不一样,例如一个依赖于 xxx-1.0.0,另一个依赖于xxx-1.2.0

为了解决以上问题,需要引入

Python版本管理:在一台机器上实现安装多个版本的python,

Python环境管理:实现对每个项目工程创建虚拟环境实现每个项目不同依赖。

python有众多的版本,不同版本之间支持的特性有差异,而且python2和python3是不向下兼容的,如果做机器学习方面工作又经常会使用anaconda,而anaconda则完全实现了自己的包管理。

为了应对这种局面,python出现了很多管理工具,例如:virtualenv、pipenv、pyenv等

pyenv

pyenv用于管理python多版本,例如安装多个版本python,如果使用windows系统则需要使用pyenv-win,pyenv可集成virtual-env插件

Mac上pyenv的安装与使用 - 掘金

基本使用

命令

描述

pyenv --version

查看 pyenv 的版本

pyenv versions

罗列当前已安装的所有 python 环境,如果是当前正在使用的环境,则前面会有个 *

pyenv help

查看帮助

pyenv init

如果输入 pyenv 之后使用 tab 不补全,可以使用该命令进行初始即可使用补全命令

安装环境

命令

描述

pyenv install -l

显示可以安装的版本列表

pyenv install 版本号

安装指定版本的 python

pyenv rehash

更新本地数据库,安装指定版本的 python 后使用

环境应用

命令

描述

pyenv global 版本号

更改本机版本,重启不会造成再次更改

pyenv local 版本号

会在当前目录创建 .python-version 文件,并记录设置的 python 环境,每次进入该目录会自动设置成该 python 环境

pyenv shell 版本号

更改当前 shell 下使用的 python 版本,临时生效,优先级高于 global

virtualenv

virtualenv是python虚拟环境管理工具,可以为每个项目(对应一个目录)创建独立虚拟环境,不同的虚拟环境可以有不同的依赖库

#创建虚拟环境:
pyenv virtualenv 3.7.0 test  # 使用python 3.7.0 版本创建名字为test的虚拟环境


#查看所有虚拟环境
pyenv virtualenvs


#激活虚拟环境
pyenv activate test


#去掉当前环境
pyenv deactivate

pipenv

可以看做是virtualenv的升级

本文主要介绍使用pyenv、virtualenv、anaconda搭建python环境,基本可覆盖绝大多数python开发场景。