设为首页 收藏本站
查看: 896|回复: 0

[经验分享] python多版本控制管理工具:Pyenv

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-3-28 09:05:04 | 显示全部楼层 |阅读模式
项目背景:
公司来了几个python程序员,老板让你给他们部署一个可以方便他们灵活开发软件的环境。这个时候你就可以用pyenv在一台主机上部署十几种python版本,灵活使用不同版本的特性!!!相信你老板肯定会对你刮目相看~~~~~



试验环境:
vmware workstation 11
centos6.5的系统下
服务器:ip:192.168.0.27
SecureCRT (ssh远程连接软件)





软件介绍:
pyenv是一个能简易地在多个Python版本中进行切换的工具,它简单而优雅。
pyenv有以下功能:
进行全局的Python版本切换
为单个项目提供对应的Python版本
使用环境变量能让你重写Python版本
能在同一时间在不同版本间进行命令搜索
拥有以下特点:
只依赖Python本身
将目录添加进$PATH即可使用
能够进行virtualenv管理



软件常用的一些命令:
pyenv version                   #显示当前使用的Python(星号后面的)
pyenv which python                #显示当前Python的安裝路径
pyenv global <version>             #设置默认的Python版本
pyenv rehash                    #更新数据库

pyenv local <version>            
#在当前路径创建一个.python-version,以后进入这个目录自动切换为该版本
pyenv shell <version>            
#在当前shell的session中启用某个Python版本,优先级高于global,local



实验流程:
一、首先安装GIT软件

因为我们要用它从github上下载pyenv软件,所以我们首先的确保我们已经安装了git软件
yum install -y git
二、从GitHUB下载pyenv软件
git clone git://github.com/yyuu/pyenv.git ~/.pyenv
三、环境配置,重要!!!
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
四、python以来的包安装
yum install readline readline-devel readline-static openssl openssl-devel openssl-static
bzip2-devel bzip2-libs  sqlite-devel  -y
执行上面的yum安装就行了。
五、我们要知道centos6.5的系统自带的是python2.6.6,下面我用pyenv这个软件下载python3.4.1.
pyenv install 3.4.1 -v
你肯定想知道上面的操作究竟做了什么?
答案:该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。
ps:所以你明白安装依赖包有多么重要了!
六、更新数据库
pyenv rehash
七、查看当前已安装的python软件版本

1、[iyunv@real_server01 ~]# pyenv versions
* system (set by /root/.pyenv/version)   #默认指向我们系统自带的python,也就是python2.6.6
  3.4.1
2、[iyunv@real_server01 ~]# python
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)    #可以看到这里是我们系统原来的2.6.6
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
八、修改我们全局使用的python,这里我把全局的python改成我们刚才下载的python3.4.1
1、把全局的python改成3.4.1
[iyunv@real_server01 ~]# pyenv global 3.4.1
2、查看已安装的python
[iyunv@real_server01 ~]# pyenv versions
  system
* 3.4.1 (set by /root/.pyenv/version)      #可以看到星号移到下面了。
3、这个时候查看python的版本。
[iyunv@real_server01 ~]# python
Python 3.4.1 (default, Mar 26 2016, 22:30:47)     #可以看到python的版本号已经变成3.4.1了
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
九、使用pip安装image模块,我以前在python2.6.6下面安装的话老是出现问题

[iyunv@real_server01 ~]# pip install image
[iyunv@real_server01 ~]# python
Python 3.4.1 (default, Mar 26 2016, 22:30:47)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import image

ps:pip相信大家都知道,是python的包管理工具,可以方便我们下载我们需要的一些python模块。

可以看到我们成功的安装了image模块
使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/3.4.1 下,不会和系统模块发生冲突。
使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库;
[iyunv@real_server01 ~]# pyenv rehash
上面的就是我们常见的的使用!!!你可以在一台主机上面安装多个python版本我们可以在不同版本之间切换!灵活的使用,方法我上面已经展示了。谢谢大家!

项目总结:
整体来说,pyenv是一个优秀python版本控制管理软件,加上pip我们可以如鱼得水的开发我们的python程序,我们可以搭建多python开发环境,有助于我们开发基于不同版本的python程序,我认为值得学习!!!!
希望大家都有所得!!!谢谢大家




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-196463-1-1.html 上篇帖子: python之enumerate函数使用 下篇帖子: python 实现iotop 管理工具 python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表