背景

之前使用venv,大部分情况下并没有什么不好,配合virtualenvwrapper,用起来倒也顺手,如果没有Python版本切换需求的话。

日常开发机器使用的python是最新版,logging的时候,使用了f’i am a {var}‘这种format语法,而这个特性是Python 3.6之后才有的,于是上线之后凉凉= = (生产环境的机器是Ubuntu 16.04,仅使用apt管理Python版本,于是装的版本实际上是3.5.2)

既然吃了一回亏,那么就赶紧解决问题。。。

题外话:貌似在Python的benchmark中,3.5、3.6、3.7中性能最差也是3.5,于是,抽空将生产机器改成用pyenv来管理版本

食用步骤

  1. 参考pyenv-installer进行安装和配置
  2. 直接装需要的Python版本啦,比如pyenv install 3.7.1
  3. 如果安装过程中有任何问题,参考common build problems
  4. 如果安装也成功了,那么希望更改当前shell环境的Python版本来替换掉系统的版本,可以使用pyenv global 3.7.1

virtualenv使用

  1. 使用指定的Python版本创建虚拟环境pyenv virtualenv 3.7.1 myenv
  2. 启用虚拟环境 pyenv activate myenv
  3. 退出虚拟环境 source deactivate
  4. 进入项目目录自动启用虚拟环境,离开项目目录退出虚拟环境,需要在项目目录内 pyenv local myenv,会创建一个.python-version的文件,内容为虚拟环境的名字,则为myenv

done, 希望食用快乐~