pyenv、virtualenv、virtualenvwrapper三种python多版本介绍
今天有把此前接触过的三种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 -b或workon
进入当前环境的目录,在环境里执行:
cdvirtualenv
拷贝虚拟环境:
cpvirtualenv
删除虚拟环境:
rmvirtualenv
切换不同的虚拟环境:
workon
退出虚拟环境:
deactive
pyenv、virtualenv、virtualenvwrapper三种python多版本介绍的更多相关文章
- [转] 三种Python下载url并保存文件的代码
原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...
- Java 处理 XML 的三种主流技术及介绍
Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...
- HTML中使用js的三种方式及优缺点介绍
1.内部js: 在直接在页面的<script></script>标签内写js代码 优点:相对于使用行内js,内部js代码较为集中,与页面结构的实现代码耦合度较低,比较便于维护 ...
- 【python】pyenv与virtualenv安装,实现python多版本多项目管理
踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位. pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应的python ...
- Linux中三种SCSI target的介绍之各个target的优劣
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/scaleqiao/article/deta ...
- Redis三种集群模式介绍
三种集群模式 redis有三种集群模式,其中主从是最常见的模式. Sentinel 哨兵模式是为了弥补主从复制集群中主机宕机后,主备切换的复杂性而演变出来的.哨兵顾名思义,就是用来监控的,主要作用就是 ...
- 【收藏用】--切勿转载Java处理XML的三种主流技术及介绍
原帖地址 : http://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Markup Language) 意为可扩展标记 ...
- Spring学习(十八)Bean 的三种依赖注入方式介绍
依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖.接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:• 属性注入方法• ...
- Rsyslog的三种传输协议简要介绍
rsyslog的三种传输协议 rsyslog 可以理解为多线程增强版的syslog. rsyslog提供了三种远程传输协议,分别是: 1. UDP 传输协议 基于传统UDP协议进行远程日志传输,也是传 ...
随机推荐
- 《BUG创造队》作业8:软件测试与Alpha冲刺(第五天)
项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 BUG创造队 作业学习目标 (1)掌握软件测试基础技术.(2)学习 ...
- 浏览器缓存控制 以及 在url框中回车、F5 和 Ctrl + F5的区别
第一部分: 浏览器缓存如何控制? 做网站,不知道缓存是什么东西怎么能行! 如何实现HTTP缓存呢? 下面我们来一步一步的探寻实现机制把. 方案一: 无缓存 说明:浏览器向服务器请求资源m.pn ...
- HDFS的NameNode堆内存估算
NameNode堆内存估算 在HDFS中,数据和元数据是分开存储的,数据文件被分割成若干个数据块,每一个数据块默认备份3份,然后分布式的存储在所有的DataNode上,元数据会常驻在NameNode的 ...
- BAT文件的调用
分成2个步骤,首先生成一个bat文件,然后调用批处理文件 1.生成.bat文件 入参为文件的内容,filePath为绝对路径,且需要扩展名(这个方法不局限于生成.bat文件,也可以生成其他扩展名文件) ...
- nginx 超时配置、根据域名、端口、链接 配置不同跳转
Location正则表达式location的作用 location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作. locatio ...
- 在新浪SAE上搭建微信公众号的python应用
微信公众平台的开发者文档https://www.w3cschool.cn/weixinkaifawendang/ python,flask,SAE(新浪云),搭建开发微信公众账号http://www. ...
- 【JS】基础知识
引言 在互联网的演化过程中,网页制作是Web1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主. 2005年以后,互联网进入了Web2.0时代,各类似桌面软件的Web应用大 ...
- Codeforces Round #557 题解【更完了】
Codeforces Round #557 题解 掉分快乐 CF1161A Hide and Seek Alice和Bob在玩捉♂迷♂藏,有\(n\)个格子,Bob会检查\(k\)次,第\(i\)次检 ...
- 洛谷P1901发射站
题目 一道单调栈裸题,主要是用单调栈维护单调性,和单调队列都可以在\(O(n)\)的时间内得出单调最大值或最小值,要比堆要快. 这个题可以用h来当做单调栈的使用对象,即用单调栈来维护高度,高度是越在栈 ...
- Vue中的$emit组件事件运用
话不多说上代码 vue>src>App.vue <template> <div id="app"> <!-- header --> ...