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 相关文章推荐
python利用elaphe制作二维条形码实现代码
May 25 Python
在Django的URLconf中使用命名组的方法
Jul 18 Python
举例讲解Python编程中对线程锁的使用
Jul 12 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Python开发网站目录扫描器的实现
Feb 21 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
详解pyinstaller生成exe的闪退问题解决方案
Jun 19 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 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
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
Yii2创建表单(ActiveForm)方法详解
2016/07/23 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP 中常量的知识整理
2017/04/14 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
angular异步验证防抖踩坑实录
2019/12/01 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
[00:32]2018DOTA2亚洲邀请赛Mineski出场
2018/04/04 DOTA
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
[53:10]Secret vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
PyQt5每天必学之关闭窗口
2018/04/19 Python
Django web框架使用url path name详解
2019/04/29 Python
python找出因数与质因数的方法
2019/07/25 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
python GUI计算器的实现
2020/10/09 Python
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
买房子个人收入证明
2014/01/16 职场文书
积极向上的团队口号
2014/06/06 职场文书
公司委托书怎么写
2014/08/02 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫
Python实现数据的序列化操作详解
2022/07/07 Python