python版本管理工具_python多版本控制管理工具:Pyenv-程序员宅基地

技术标签: python版本管理工具  

项目背景:

公司来了几个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的安b路径

pyenv global #设置默认的Python版本

pyenv rehash #更新数据库

pyenv local

#在当前路径创建一个.python-version,以后进入这个目录自动切换为该版本

pyenv shell

#在当前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、[root@real_server01 ~]# pyenv versions

* system (set by /root/.pyenv/version) #默认指向我们系统自带的python,也就是python2.6.6

3.4.1

2、[root@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

[root@real_server01 ~]# pyenv global 3.4.1

2、查看已安装的python

[root@real_server01 ~]# pyenv versions

system

* 3.4.1 (set by /root/.pyenv/version) #可以看到星号移到下面了。

3、这个时候查看python的版本。

[root@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下面安装的话老是出现问题

[root@real_server01 ~]# pip install image

[root@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 更新数据库;

[root@real_server01 ~]# pyenv rehash

上面的就是我们常见的的使用!!!你可以在一台主机上面安装多个python版本我们可以在不同版本之间切换!灵活的使用,方法我上面已经展示了。谢谢大家!

项目总结:

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

希望大家都有所得!!!谢谢大家

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39868248/article/details/110341402

智能推荐

python下载安装教程_python官网下载安装-程序员宅基地

文章浏览阅读10w+次,点赞178次,收藏486次。python3.7.3下载步骤第一步:进入Python官网[https://www.python.org/](https://www.python.org/)第二步:点击downloads进入下载界面选择你想要的下载的版本。这里我选择的是Python3.7.3第三步:新建一个标签,输入网址:[https://python123.io/download](https://python123.io/d..._python官网下载安装

【SVM回归预测】基于鹈鹕算法优化卷积神经网络结合支持向量机实现POA-CNN-SVM实现数据回归预测附matlab代码-程序员宅基地

文章浏览阅读893次,点赞19次,收藏20次。本文提出了一种基于鹈鹕算法优化卷积神经网络结合支持向量机(POA-CNN-SVM)的数据回归预测方法。该方法首先利用鹈鹕算法优化卷积神经网络的参数,然后将优化后的卷积神经网络与支持向量机相结合,构建POA-CNN-SVM回归模型。最后,利用POA-CNN-SVM回归模型对数据进行回归预测。实验结果表明,该方法能够有效提高数据回归预测的准确性。

选项菜单的一些基本内容_android:icon参数是id-程序员宅基地

文章浏览阅读280次。菜单的分类第一种菜单在Activity中的创建OptionMenu的方法,这个方法需要我们自行覆盖,getMenu Inflater()这个方法返回一个MenuInflate对象,这个对象下面有inflate()方法,这个方法需要传两个值,第一个是我们的menu资源,传他的资源索引就可以了,第二个参数就是我们的菜单对象,但是我们的菜单对象早就通过onCreateOptionsMenu方法传进来了,即menu,这个方法就可以将我们的菜单资源加载到页面上,而return 后面应该_android:icon参数是id

ubuntu10.10安装TFTP-程序员宅基地

文章浏览阅读2k次。/*ubuntu10.10安装TFTP*/sudo mkdir /tftpbootsudo chmod 777 /tftpbootsudo apt-get install tftp /*安装客户端*/sudo apt-get install tftpd /*安装服务器端*/sudo apt-get install openbsd-inetdsudo vi /etc/inetd.conf在最后加入一行:tftp dgram udp wait nobody /usr/sbin/tcpd /usr/

【交通标志识别】基于SIFT特征实现交通标志识别matlab源码含GUI-程序员宅基地

文章浏览阅读323次。一、简介SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。\1 SIFT算法特点:\(1)具有较好的稳定性和不变性,能够适应旋转、尺度缩放、亮度的变化,能在一定程度上不受视角变化、仿射变换、噪声的干扰。\(2)区分性好,能够在海量特征数据库中进行快速准确的区分信息进行匹配\(3)多量性,就算只有单个物体,也能..._交通要素识别算法

Educational Codeforces Round 111 (Rated for Div. 2)-程序员宅基地

文章浏览阅读124次。Problem - A - CodeforcesCodeforces. Programming competitions and contests, programming communityhttps://codeforces.com/contest/1550/problem/A签到:B. Maximum Cost Deletion题意:给你一个01字符串,我们每次可以删除相连的且内部每个字符都相等的子串.每次删除的长度为l,那么对于答案的贡献就是a*l+b,a和b都是需要进行输入的.问最大贡献_educational codeforces round 111 (rated for div. 2)

随便推点

gradle 打jar包 第三方依赖放入lib 目录_gradle打jar包时把依赖的lib打进去-程序员宅基地

文章浏览阅读5.7k次。jar { manifest { attributes("Main-Class": "com.thtf.forecast.GuangdongUploader", "Implementation-Title": "Gradle") } into('lib') { from configurations.runt..._gradle打jar包时把依赖的lib打进去

要被淘汰的程序猿-程序员宅基地

文章浏览阅读74次。今天小伙伴都比较忙,我去修改了一个程序的bug搞了至少20分钟,居然被一个以前不care的小问题难住了。jquery span 用 $(".ybm").val() 无法获取到值,$(".ybm").text()才可以获取到值 文本输入框用$(".ybm").val()谨记...

Java源码分析之HashMap(JDK1.8)_hashmap key是如何算出hsahcode的-程序员宅基地

文章浏览阅读8.9k次,点赞10次,收藏30次。一、HashMap概述HashMap是常用的Java集合之一,是基于哈希表的Map接口的实现。与HashTable主要区别有不支持同步和允许null作为key和value。由于HashMap不是线程安全的,如果想要线程安全,可以使用ConcurrentHashMap代替。二、HashMap数据结构HashMap的底层是哈希数组,数组元素为Entry。HashMap通过key的has_hashmap key是如何算出hsahcode的

HTML5常用标签及属性_html5标签属性大全-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏31次。HTML常用标记一、文本标记1.标题标记2.字体标记一、文本标记1.标题标记标题标记的语法格式:<hn align="对齐方式">标题文本</hn><!--HTML中提供了6级标题,为<h1>至<h6>,其中<h1>最大,<h6>最小n代表1,2,3,4,5,6align属性有三种,分别是:left(左对齐),center(居中),right(右对齐)-->例子:<body> <_html5标签属性大全

查找薪水涨幅超过15次的员工号emp_no以及其对应的涨_查找薪水涨幅超过10次的员工-程序员宅基地

文章浏览阅读163次。题目描述查找薪水涨幅超过15次的员工号emp_no以及其对应的涨幅次数tCREATE TABLE `salaries` (`emp_no` int(11) NOT NULL,`salary` int(11) NOT NULL,`from_date` date NOT NULL,`to_date` date NOT NULL,PRIMARY KEY (`emp_no`,`from_date`));s..._查找薪水涨幅超过10次的员工