详解使用 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编写一个基于终端的实现翻译的脚本
Apr 24 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
django静态文件加载的方法
May 20 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
Python文件读写w+和r+区别解析
Mar 26 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
Python中random模块常用方法的使用教程
Oct 04 Python
python 实现性别识别
Nov 21 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中的MVC模式运用技巧
2007/05/03 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP中COOKIES使用示例
2015/07/26 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
js中Number数字数值运算后值不对的解决方法
2017/02/28 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
angular 内存溢出的问题解决
2018/07/12 Javascript
Angular8 Http拦截器简单使用教程
2019/08/20 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
美国内衣品牌:Leonisa
2016/08/14 全球购物
意大利婴儿产品网上商店:Mukako
2018/10/14 全球购物
应届生高等护理求职信
2013/10/12 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
幼儿园庆六一游园活动方案
2014/01/29 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2014年保卫工作总结
2014/12/05 职场文书
环保建议书范文
2015/09/14 职场文书
建房合同协议书
2016/03/21 职场文书
新手必备Python开发环境搭建教程
2021/05/28 Python