Python多版本共存之pyenv
经常遇到这样的情况:
- 系统自带的Python是2.6,自己需要Python 2.7中的某些特性;
- 系统自带的Python是2.x,自己需要Python 3.x;
此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存。pyenv就是这样一个Python版本管理器。
安装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
查看可安装的版本
pyenv install --list
该命令会列出可以用pyenv安装的Python版本
其中形如x.x.x这样的只有版本号的为Python官方版本,其他的形如xxxxx-x.x.x这种既有名称又有版本后的属于“衍生版”或发行版。
安装Python的依赖包
在安装Python时需要首先安装其依赖的其他软件包,已知的一些需要预先安装的库如下。
在CentOS/RHEL/Fedora下:
sudo yum install readline readline-devel readline-static sudo yum install openssl openssl-devel openssl-static sudo yum install sqlite-devel sudo yum install bzip2-devel bzip2-libs
安装指定版本
使用如下命令即可安装python 3.4.1:
pyenv install -v
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。
对于科研环境,更推荐安装专为科学计算准备的Anaconda发行版,pyenv install anaconda-2.1.0安装2.x版本,pyenv install anaconda3-2.1.0安装3.x版本;
Anacoda很大,用pyenv下载会比较慢,可以自己到Anaconda官方网站下载,并将下载得到的文件放在~/.pyenv/cache目录下,则pyenv不会重复下载。
更新数据库
安装完成之后需要对数据库进行更新:
pyenv rehash
查看当前已安装的python版本
pyenv versions
其中的星号表示当前正在使用的是系统自带的python。
设置全局的python版本
pyenv global 3.4.1
pyenv versions
当前全局的python版本已经变成了3.4.1。也可以使用pyenv local或pyenv shell临时改变python版本。
确认python版本
$ python Python ( , ::) [GCC (Red Hat -)] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
使用python
- 输入python即可使用新版本的python;
- 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
- 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.4.1下,不会和系统模块发生冲突。
- 使用pip安装模块后,可能需要执行pyenv rehash更新数据库;
Python多版本共存之pyenv的更多相关文章
- Python 多版本共存之pyenv
经常遇到这样的情况: 系统自带的 Python 是 2.6,自己需要 Python 2.7 中的某些特性: 系统自带的 Python 是 2.x,自己需要 Python 3.x: 此时需要在系统中安装 ...
- Python多版本共存管理工具之pyenv
目录 Table of Contents 1. 安装pyenv 2. 安装Python 3.0 使用python 参考 Table of Contents 经常遇到这样的情况: 系统自带的Python ...
- Linux系统之路——python多版本共存问题(ps:自行切换python版本,pip安装遇到的一些问题)
经常遇到这样的情况: 系统自带的Python是2.6,自己需要Python 2.7中的某些特性: 系统自带的Python是2.x,自己需要Python 3.x: 此时需要在系统中安装多个Python, ...
- [转]Windows下Python多版本共存
https://blog.csdn.net/dream_an/article/details/51248736 Windows下Python多版本共存 Python数据科学安装Numby,pandas ...
- windows配置Python多版本共存
windows配置Python多版本共存 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近Python开发蛮火的,三年前我的一个运维朋友就告诉我说Python语言将来会很火,当时 ...
- Ancoda 下的python多版本共存
Ancoda 下的python多版本共存 virtualenv python 多版本共存 Pip, Virtualenv 和Fabric 被称为python 的三大神器,Pip 是包管理工具,Virt ...
- Windows下Python多版本共存
Windows下Python多版本共存 Python数据科学安装Numby,pandas,scipy,matpotlib等(IPython安装pandas) 0.0 因为公司项目,需要Python两个 ...
- Python多版本共存安装
Python的安装 进入Python官方网站:www.python.org下载系统对应的Python版本 按照提示步奏安装,安装路径选择自定义,方便查找 安装完成后,按win+R键,输入cmd进入cm ...
- 使用pyenv实现python多版本共存
背景 如果是Ubuntu等桌面系统,都已经更新到了Python较新的版本.但多数生产环境使用的还是红帽系统. CentOS7默认还是Python2.7,而开发环境如果是高版本Python就带来了问题. ...
随机推荐
- java78_c
import java.util.*; public class Main { public static void main(String args[]){ Scanner cin=new Scan ...
- 4.7---最近公共祖先(CC150)
import java.util.*; public class LCA { public static int getLCA(int a, int b){ if(a < 1 || b < ...
- 将 JAR 转为 EXE – JSMOOTH 的使用教程(第二期)(转载)
http://www.iteknical.com/convert-jar-to-exe-phase-ii-jsmooth-use-tutorial/
- VQ结合SVM分类方法
今天整理资料时,发现了在学校时做的这个实验,当时整个过程过重偏向依赖分类器方面,而又很难对分类器性能进行一定程度的改良,所以最后没有选用这个方案,估计以后也不会接触这类机器学习的东西了,希望它对刚入门 ...
- Visual Studio与Chrome调试工具使用技巧
VS: 1: Ctrl + Enter (在光标指定位置的上面添加一行,并将光标移至新添加行的行首位置) Ctrl + Shift + Enter (在光标指定位置的下面添加一行,并将光标移至新添加行 ...
- poj 1125 (floyd)
http://poj.org/problem?id=1125. 题意:在经纪人的圈子里,他们各自都有自己的消息来源,并且也只相信自己的消息来源,他们之间的信息传输也需要一定的时间.现在有一个消息需要传 ...
- ios 在中国地区,24小时时间格式 系统设定下 获得12小时制时间的方法
如题,在中国地区,24小时时间格式 系统设定下,如果单单使用 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 之后,无论用hh ...
- iOS 在UITableViewCell中加入自定义view时view的frame设定注意
由于需要重用同一个布局,于是在cellForRowAtIndexPath中把自定义view加在了cell上,我是这样设定view的frame的 var screenFrame = UIScreen.m ...
- Sql Server事务简单用法
var conStr = "server=localhost;database=Data;user=sa;pwd=123456"; using (var connection = ...
- Java for LeetCode 211 Add and Search Word - Data structure design
Design a data structure that supports the following two operations: void addWord(word)bool search(wo ...