今天有把此前接触过的三种python实现多版本环境用到的软件pyenv、virtualenv、virtualenvwrapper,了解了一番,现做如下总结:

一、pyenv:

是针对python多版本的管理,通过修改环境变量的方式实现;直接实现python多版本的虚拟环境并灵活切换;

安装依赖git:

yum install git

安装pyenv,根据提示设置环境变量:

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

            

             把以下3行写在~/.bash_profile文件里:

export PATH="$PYENV_ROOT/bin:$PATH"

                eval "$(pyenv init -)"

                eval "$(pyenv virtualenv-init -)"

显示能安装的python版本:

pyenv install -list

显示已安装的所有python版本 :

pyenv versions

安装python版本:

pyenv install python版本号

卸载python版本:

 pyenv uninstall python版本号

使python版本成为全局python版本;

  pyenv global python版本号

恢复系统全局默认的python版本:

 pyenv global system

设置本地默认使用的python版本,可同时设多个用空格分隔:

 pyenv local python版本号

设置当前虚拟python版本为系统默认的python版本:

pyenv local system

注意:local只是临时生效,重启什么的会恢复系统版本,global永久生效,重启后依然生效。

 

刷新版本包(每次安裝新版本時,执行一次,为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令):

pyenv rehash

设置面向shell的Python版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比local和global都要高。–unset参数可以用于取消当前shell设定的版本;

pyenv shell python版本号

                pyenv shell --unset

python版本不同环境的优先级:

shell > local > global

二、 virtualenv:

是针对python的包的多版本管理,隔离的是包,尤其是site-packages第三方包,使其创建干净的python版本,可使用-p python版本路径,来指定虚拟环境使用的python版本;

实现python多版本,需要事先安装多个python版本。

安装vitualenv:

pip install virtualenv

            进入要设置pyhton版本工作目录:

cd python环境目录

创建新的虚拟环境,--no-site-packages可省默认为不使用系统环境包:

virtualenv [-p python程序版本路径 --no-site-packages] 虚拟环境名称

            切换不同的虚拟环境:

source 虚拟环境名称/bin/activate

退出虚拟环境:

deactivate

删除虚拟环境:

rm python环境目录

三、virtualevnwapper:

对virtualenv的扩展是virtualenv的扩展包,是对virtualenv的封装,可以方便的创建/删除/拷贝/切换不同的环境;

实现python多版本,需要事先安装多个python版本。

安装必要依赖:

pip install virtualenv

安装virtualevnwrapper:

pip install virtualenvwrapper

创建新的虚拟环境:

mkvirtualenv [-p python程序版本路径] 虚拟环境名称

列出所有虚拟环境:

lsvirtualenv -bworkon

进入当前环境的目录,在环境里执行:

cdvirtualenv

拷贝虚拟环境:

cpvirtualenv

删除虚拟环境:

 rmvirtualenv

切换不同的虚拟环境:

 workon

退出虚拟环境:

deactive

pyenv、virtualenv、virtualenvwrapper三种python多版本介绍的更多相关文章

  1. [转] 三种Python下载url并保存文件的代码

    原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...

  2. Java 处理 XML 的三种主流技术及介绍

    Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...

  3. HTML中使用js的三种方式及优缺点介绍

    1.内部js: 在直接在页面的<script></script>标签内写js代码 优点:相对于使用行内js,内部js代码较为集中,与页面结构的实现代码耦合度较低,比较便于维护 ...

  4. 【python】pyenv与virtualenv安装,实现python多版本多项目管理

    踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位. pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应的python ...

  5. Linux中三种SCSI target的介绍之各个target的优劣

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/scaleqiao/article/deta ...

  6. Redis三种集群模式介绍

    三种集群模式 redis有三种集群模式,其中主从是最常见的模式. Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性而演变出来的.哨兵顾名思义,就是用来监控的,主要作用就是 ...

  7. 【收藏用】--切勿转载Java处理XML的三种主流技术及介绍

    原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记 ...

  8. Spring学习(十八)Bean 的三种依赖注入方式介绍

    依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖.接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:•    属性注入方法• ...

  9. Rsyslog的三种传输协议简要介绍

    rsyslog的三种传输协议 rsyslog 可以理解为多线程增强版的syslog. rsyslog提供了三种远程传输协议,分别是: 1. UDP 传输协议 基于传统UDP协议进行远程日志传输,也是传 ...

随机推荐

  1. java.lang.IllegalArgumentException: No enum constant org.apache.ibatis.type.JdbcType.Integer

    mybatis配置的jdbaType类型要是大写的,否则就会出现此种异常 原因是在xml中配置的 jdbcType中有小写字母

  2. test20190729 夏令营NOIP训练14

    40+100+0=140. 基因光线 黑大帅统治古古怪界后,一直在玩一种很奇葩的游戏.在一个二维平面上,他先复制了n个小A,把他们放在不同的位置,然后射出一条ax+by+c=0的基因光线,宽度为d,即 ...

  3. TP5.x——initialize()中如何return

    前言 首先在tp框架中initialize中是无法直接通过return来返回任何值的,return并不会造成脚本的中断! 环境:PHP 7.0.4 | TP5.1 说明 initialize方法 首先 ...

  4. 安装node.js 和 npm 的完整步骤

    vue 生命周期 1,beforeCreate 组件刚刚被创建 2,created 组件创建完成 3,beforeMount 挂载之前 4,mounted 挂载之后 5,beforeDestory 组 ...

  5. php自定义函数之参数的引用

    在变量这个函数中,我们学习了变量的引用,我们来回顾一下知识:大理石平台支架 <?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'. ...

  6. 014_Python3 循环语句

    1.while 循环 #!/usr/bin/env python3   n = 100   sum = 0 counter = 1 while counter <= n:     sum = s ...

  7. Picture Control 加载路径图片

    //CBitmap bitmap; //HBITMAP hBmp; //bitmap.LoadBitmap(strImgPath); //hBmp = (HBITMAP)bitmap.GetSafeH ...

  8. cs 与 bs 架构

    C/S和B/S各有优势,C/S在图形的表现能力上以及运行的速度上肯定是强于B/S模式的,不过缺点就是他需要运行专门的客户端,而且更重要的是它不能跨平台,用c++在windows下写的程序肯定是不能在l ...

  9. [WEB安全]SSRF中URL的伪协议

    当我们发现SSRF漏洞后,首先要做的事情就是测试所有可用的URL伪协议 0x01 类型 file:/// dict:// sftp:// ldap:// tftp:// gopher:// file: ...

  10. call 和 apply 方法

    1:每个函数都包含两个非继承而来的方法:call(),apply(). 2:call方法和apply方法作用是一样的. 下边是call的使用例子: window.color = 'red'; docu ...