详解使用 pyenv 管理多个版本 python 环境


Posted in Python onOctober 19, 2017

 随着同时开发的项目越来越多,需要不停的在各个不同版本的 python 环境之间切换,所以想到了pyenv。以前一直使用的 virtualenv只能管理同一个 python 版本下第三方库的版本,但是对于这种需要在多个不同版本之间切换的 case,就只能使用 pyenv 了。

安装

运行下面的命令会自动下载安装

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

安装完成后,需要修改 ~/.bashrc 文件,把pyenv加到 PATH 里。这里是添加如下行到 ~/.bashrc 文件中。

export PATH="/home/kongxx/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

然后 source 一下环境

$ .~/.bashrc

使用 pyenv 管理 python 版本

首先查看当前系统上已经安装和正在使用的 python 版本。

$ pyenv versions
* system (set by /home/kongxx/.pyenv/version)

其中 system 表明是系统安装的包。* 表示当前正在使用的 python 环境。

查看当前可以被安装的 python 版本。

$ pyenv install -l
Available versions:
 2.1.3
 2.2.3
 2.3.7
 2.4
 2.4.1
...

安装指定版本的 python

$ pyenv install 2.7.10
Downloading Python-2.7.10.tar.xz...
-> https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz
Installing Python-2.7.10...
patching file ./Lib/site.py
Installed Python-2.7.10 to /home/kongxx/.pyenv/versions/2.7.10

$ pyenv install 3.2.1
...

安装后查看现在已经安装了的 python 版本。

$ pyenv versions
* system (set by /home/kongxx/.pyenv/version)
 2.7.10
 3.2.1

使用制定版本的 python

$ pyenv global 3.2.1
$ python -V
Python 3.2.1

使用后查看当前使用的 python 版本。

$ pyenv version
3.2.1 (set by /home/kongxx/.pyenv/version)

$ pyenv versions
 system
 2.7.10
* 3.2.1 (set by /home/kongxx/.pyenv/version)

使用 pyenv 管理 virtualenv

创建一个 virtualenv 环境

这里使用 python 3.2.1 来创建一个 virtualenv 环境

$ pyenv virtualenv 3.2.1 myenv

$ pyenv versions
 system
 2.7.10
* 3.2.1 (set by /home/kongxx/.pyenv/version)
 3.2.1/envs/myenv
 myenv

激活当前需要使用的 virtualenv

$ pyenv activate myenv

$ pyenv versions
 system
 2.7.10
 3.2.1
 3.2.1/envs/myenv
* myenv (set by PYENV_VERSION environment variable)

去除当前需要使用的 virtualenv

$ pyenv deactivate

删除当前需要使用的 virtualenv

$ pyenv virtualenv-delete myenv

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中copy()与deepcopy()的区别小结
Aug 03 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python3 pygame实现接小球游戏
May 14 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
详解Pycharm第三方库的安装及使用方法
Dec 29 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 Python
Python Django框架介绍之模板标签及模板的继承
May 27 Python
Python实现简繁体转换
Jun 07 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 #Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 #Python
python连接数据库的方法
Oct 19 #Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 #Python
python里使用正则的findall函数的实例详解
Oct 19 #Python
详解python里使用正则表达式的全匹配功能
Oct 19 #Python
python中logging库的使用总结
Oct 18 #Python
You might like
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP 验证码的实现代码
2011/07/17 PHP
5种PHP创建数组的实例代码分享
2014/01/17 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
JS如何实现动态添加的元素绑定事件
2019/11/12 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
Python标准库与第三方库详解
2014/07/22 Python
详解Python中DOM方法的动态性
2015/04/11 Python
详解Python各大聊天系统的屏蔽脏话功能原理
2016/12/01 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
Python上下文管理器和with块详解
2017/09/09 Python
利用pyinstaller将py文件打包为exe的方法
2018/05/14 Python
Django进阶之CSRF的解决
2018/08/01 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
pytorch模型预测结果与ndarray互转方式
2020/01/15 Python
Python+MySQL随机试卷及答案生成程序的示例代码
2021/02/01 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
正隆泰信息技术有限公司上机题
2012/06/14 面试题
公司庆典邀请函范文
2014/01/13 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
授权委托书怎么写
2014/09/25 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python