按照<< Python多版本环境管理之pyenv >>的操做安装pyenv后.咱们能够方便的在不一样版本中切换了.若是只开发一个项目的是没问题,可是若是同时进行多个项目,不一样项目又依懒同一个包的不一样版本的话就比较尴尬了.因此还须要基于一样的版本作不一样的环境.php
Linux下安装完pyenv后会附带安装pyenv-virtualenv,Mac系统须要本身手动安装一下python
brew install pyenv-virtualenv
安装后确认:ide
Linux: ls ~/.pyenv/plugins pyenv-doctor pyenv-installer pyenv-update pyenv-virtualenv pyenv-which-ext python-build Mac: which pyenv-virtualenv /usr/local/bin/pyenv-virtualenv
准备就绪,开工ui
1.建立虚拟环境code
先确认一下本机的python版本 pyenv versions * system (set by /root/.pyenv/version) 3.7.3 3.8.2 手动指定3.7.3版本 后面跟的虚拟环境的名字 pyenv virtualenv 3.7.3 project-a-3.7.3 Looking in links: /tmp/tmpuhxuv288 Requirement already satisfied: setuptools in /root/.pyenv/versions/3.7.3/envs/project-a-3.7.3/lib/python3.7/site-packages (40.8.0) Requirement already satisfied: pip in /root/.pyenv/versions/3.7.3/envs/project-a-3.7.3/lib/python3.7/site-packages (19.0.3)
不指定版本,默认会使用当前环境版本.blog
建立时建议使用工程名+Python版本ip
2.查看虚拟环境开发
pyenv virtualenvs 3.7.3/envs/project-a-3.7.3 (created from /root/.pyenv/versions/3.7.3) project-a-3.7.3 (created from /root/.pyenv/versions/3.7.3)
再建立一个project-b并查看rem
pyenv virtualenv 3.7.3 project-b-3.7.3 Looking in links: /tmp/tmpa9ctl5a1 Requirement already satisfied: setuptools in /root/.pyenv/versions/3.7.3/envs/project-b-3.7.3/lib/python3.7/site-packages (40.8.0) Requirement already satisfied: pip in /root/.pyenv/versions/3.7.3/envs/project-b-3.7.3/lib/python3.7/site-packages (19.0.3) pyenv virtualenvs 3.7.3/envs/project-a-3.7.3 (created from /root/.pyenv/versions/3.7.3) 3.7.3/envs/project-b-3.7.3 (created from /root/.pyenv/versions/3.7.3) project-a-3.7.3 (created from /root/.pyenv/versions/3.7.3) project-b-3.7.3 (created from /root/.pyenv/versions/3.7.3
好了,咱们如今有两个项目的同一个版本了get
3.激活虚拟环境
pyenv activate project-a-3.7.3 pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior. 验证当前版本 python -V Python 3.7.3
4.退出虚拟环境
pyenv deactivate 再次验证版本 python -V Python 2.7.17
发现版本已切回系统版本
5.删除虚拟环境
pyenv uninstall project-a-3.7.3 pyenv-virtualenv: remove /root/.pyenv/versions/3.7.3/envs/project-a-3.7.3? y 再次查看虚拟环境发现只有project-b了 pyenv virtualenvs 3.7.3/envs/project-b-3.7.3 (created from /root/.pyenv/versions/3.7.3) project-b-3.7.3 (created from /root/.pyenv/versions/3.7.3)
that's all