pyenv与virtualenv安装实现python多版本多项目管理


Posted in Python onAugust 17, 2019

踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位。

pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应的python版本,使用pyenv以后,可以在服务器上安装多个不同的python版本,版本切换方便,能够更好的满足我们的需求。

virtualenv是一个管理不同项目的工具,用以隔离不同项目的工作环境,在同一个python版本实现不同的环境需求。

pyenv与virtualenv配合使用,可以更好的管理我们在Linux系统中python环境。

1,开始prenv的安装:

下载项目到本地

yum install git -y
 git clone https://github.com/pyenv/pyenv.git ~/.pyenv

配置环境变量

echo 'export PATH=~/.pyenv/bin:$PATH' >> ~/.bashrc
 echo 'export PYENV_ROOT=~/.pyenv' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

source 命令重新载入配置文件:

source ~/.bashrc
 #验证pyenv是否正确安装:
 pyenv --help
 
 #查看pyenv支持安装的python版本:
 pyenv install --list

安装一下python的依赖:

yum install gcc -y
 yum install openssl-devel bizp2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel -y

到了这里我们就可以用pyenv 安装不同的python 版本了,这里的3.7.2与2.7.5是要安装的python版本。

这里要是用官方的源地址下载会非常的慢,甚至不动,,我们修改为国内的下载地址,首先去淘宝下载源:  http://npm.taobao.org/mirrors/python   找到自己需要安装的版本

比如我拿了这两个地址:

http://npm.taobao.org/mirrors/python/2.7.5/Python-2.7.5.tar.xz
http://npm.taobao.org/mirrors/python/3.7.2/Python-3.7.2.tar.xz

然后我分别修改这两个文件

~/.pyenv/plugins/python-build/share/python-build/2.7.5

pyenv与virtualenv安装实现python多版本多项目管理

~/.pyenv/plugins/python-build/share/python-build/3.7.2

pyenv与virtualenv安装实现python多版本多项目管理

退出保存,然后执行下面命令下载速度就会非常的快

pyenv install -v 3.7.2
 pyenv install -v 2.7.5

这里有几个pyenv常用命令:

#查看当前安装的python版本
 pyenv versions
 
 #切换选择当前python版本
 pyenv global 3.7.2
 
 #删除python版本
 pyenv uninstall 2.7.2

pyenv安装完成!

2,开始安装 pyenv-virtualenv

下载项目到本地

1 git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
#配置环境变量
 echo 'echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

 #source 命令重新载入配置文件:
 source ~/.bashrc
 
 #查看是否安装成功
 pyenv help virtualenv

创建python2.7.5版本的虚拟工作环境:project_27_1  和  创建python3.7.2版本的虚拟工作环境:project_37_1

pyenv virtualenv 2.7.5 project_27_1
 pyenv virtualenv 3.7.2 project_37_1
 #查看创建的工作环境
 pyenv virtualenvs

pyenv与virtualenv安装实现python多版本多项目管理

使用实例:

#进入环境project_27_1
 pyenv activate project_27_1
 #在该环境安装0.8版本的flask
 pip install flask==0.8
 #退出当前工作环境
 pyenv deactivate
 
 #删除虚拟环境first_project
 pyenv virtualenv-delete project_27_1

总结

以上所述是小编给大家介绍的pyenv与virtualenv安装实现python多版本多项目管理,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
python自动格式化json文件的方法
Mar 11 Python
Python中join和split用法实例
Apr 14 Python
在pandas中一次性删除dataframe的多个列方法
Apr 10 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
python3.5安装python3-tk详解
Apr 26 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
tensorflow estimator 使用hook实现finetune方式
Jan 21 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
Feb 26 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
Python内置函数及功能简介汇总
Oct 13 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 #Python
关于PyTorch源码解读之torchvision.models
Aug 17 #Python
django项目用higcharts统计最近七天文章点击量
Aug 17 #Python
Django对models里的objects的使用详解
Aug 17 #Python
python3.6中@property装饰器的使用方法示例
Aug 17 #Python
对django的User模型和四种扩展/重写方法小结
Aug 17 #Python
python3.6编写的单元测试示例
Aug 17 #Python
You might like
windows7下php开发环境搭建图文教程
2015/01/06 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
jQuery 页面 Mask实现代码
2010/01/09 Javascript
JQuery入门—JQuery程序的代码风格详细介绍
2013/01/03 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery实现判断滚动条到底部
2015/06/23 Javascript
在JavaScript中call()与apply()区别
2016/01/22 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
JQuery学习总结【一】
2016/12/01 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
解析Vue2.0双向绑定实现原理
2017/02/23 Javascript
详解ESLint在Vue中的使用小结
2018/10/15 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
Python实现去除列表中重复元素的方法总结【7种方法】
2019/02/16 Python
python实现支付宝转账接口
2019/05/07 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
丹尼尔惠灵顿手表天猫官方旗舰店:Daniel Wellington
2017/08/25 全球购物
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
GWebs公司笔试题
2012/05/04 面试题
投标人法定代表人授权委托书格式
2014/09/28 职场文书
2015年社区工作总结
2015/04/08 职场文书
党员转正大会主持词
2015/07/02 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
基于Python实现nc批量转tif格式
2022/08/14 Python