一、简介

1、在操作系统mac10.10(yosemite)中搭建Python多版本虚拟环境;

2、多版本虚拟环境包含三个含义:

  • 在一个操作系统中安装多个版本的Python,不同版本可以随意切换,例如Python2.5、Python2.7、Python3.0、Python3.6共存于mac10.10;
  • 工作中,常常需要用到Python的不同模块,如paramiko、telnetlib、smtp等,会将这些模块安装到C:\Program Files\Python35\Lib目录下,这些模块安装和运行的环境被称为Python环境。对于同一个Python版本,如Python2.7,可以搭建多个Python环境,不同环境之间的Python模块没有影响。
  • 不同Python版本、不同python环境可以同时运行。例如,同一时刻,不同shell运行不同Python版本或环境,不同应用程序运行不同Python版本或者环境。

二、用到的工具

pyenv:用于实现不同Python版本共存。

pyenv-virtualenv:用于实现不同Python环境共存。

三、搭建过程

安装pyenv后,重启shell。

$ brew update
$ brew install pyenv
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

使用pyenv

$ pyenv install 2.7.
$ pyenv install 3.6.

注意:直接使用上面命令安装,可能会非常慢或者安装失败,这时可以pyenv安装本地的Python安装包。参考这篇文章。

安装pyenv-virtualenv

说明:virtualenv是一个独立于pyenv的项目,pyenv的作者将virtualenv做成了一个pyenv的插件,利于我们使用。

$ brew install pyenv-virtualenv
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

使用pyenv-virtualenv

$ pyenv virtualenv 2.7. env_2.7.13
$ pyenv virtualenv 3.6. env_3.6.0
$ pyenv virtualenv 3.6. env_3..0_2
$ pyenv virtualenv 2.7. env_2..13_2

四、常用命令

pyenv local 2.7.6  在当前目录生成.python-version文件,该目录的应用程序都将使用指定的python版本运行。
pyenv global 2.7.6  在全局范围设置Python版本。
pyenv shell pypy-2.2.1 为shell设置Python版本。用于不同shell不同Python版本。
pyenv install --list  列出所有可以用于安装的Python版本
pyenv install 2.7.6  安装某个python版本
pyenv uninstall    卸载某个Python版本
pyenv rehash      用于更新shims文件,当安装了新的Python版本后需要运行。
pyenv version     显示当前使用的Python版本
pyenv versions     显示已经安装的Python版本
pyenv which python3.3  显示Python版本的安装路径
pyenv whence 2to3    显示已经安装的某个范围的Python版本
详细命令介绍见这里 https://github.com/yyuu/pyenv/blob/master/COMMANDS.md
pyenv virtualenv 2.7.13 env_2.7.13_2    为Python版本2.7.10安装一个新的Python环境,名字为my-virtual-env-2.7.10

pyenv activate env_2.7.13_2          激活一个Python环境
pyenv virtualenvs                展示全部的Python环境
详细命令介绍见这里 https://github.com/yyuu/pyenv-virtualenv
 





最新文章

  1. 测试MailUtils,作用是发邮件
  2. 招聘前端、Java后端开发、测试、Mysql DBA
  3. Windows Store App JavaScript 开发:文件选取器
  4. Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解
  5. 模拟checkbox的最优最简方法
  6. Linux的sed命令
  7. Unity插件研究院之ResourceChecker
  8. Docker简明教程(转)
  9. 数据结构 B树 B+树 B*树 LSM-树
  10. ES6新特性之解构使用细节
  11. Python 项目实践一(外星人入侵)第二篇
  12. git工作流程一览
  13. FSFS和VDFS存储方式的区别
  14. hsdf -- 6.21 -- day6
  15. Salesforce Invoking Http Callouts and Testing Http Callouts
  16. MetaMask/sw-controller
  17. table标签总结
  18. 树莓派ssh服务
  19. Json1:使用gson解析、生成json
  20. pycharm 创建文件时,自动添加文件头注释

热门文章

  1. HRBUST 2072:萌萌哒十五酱的礼物~(树,字典树)
  2. IOS-<input>表单元素只能读,设置readonly时光标仍然可见的解决办
  3. Windows Phone 8 适应多屏分辨率
  4. Unity3D Shader 入门之简单案例的实现(通过法线实现颜色变化)
  5. chpasswd、dd命令、find实战、添加系统服务、buffer、cached
  6. scrapy 启动失败,scrapy startproject test 出错 'module' object has no attribute 'OP_NO_TLSv1_1
  7. TCP通过滑动窗口和拥塞窗口实现限流,能抵御ddos攻击吗
  8. Android应用开发-小巫CSDN博客客户端开发开篇
  9. Net调用非托管代码(P/Invoke与C++InterOP) [转]
  10. 第十讲_图像检索 Image Retrieval