ubuntu下安装多版本Python
今天一不小心又把ubuntu系统给完坏了,因为我把python3卸载了,然后就。。。好了,不废话了,接下来就说一下如何在ubuntu下管理python的多个版本。我这里使用的是一个叫pyenv的Python版本管理工具。
系统环境:ubuntu14.04LTS,系统默认的python版本为2.7,我这里想要再安装一个3.4.3版本。
- 再安装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
我们还可以通过下面这个命令来查看可以安装的python版本:
$ pyenv install --list
- 如果我们确定要安装python3.4.3的话,接下来我们就可以安装python了,但是再安装之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的:
$ sudo apt-get install libc6-dev gcc
$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
- 上面的依赖包搞定之后,我们就可以安装python了:
$ pyenv install 3.4. -v
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包滞后重新执行该命令。
- 安装完成之后,需要使用如下命令对数据库进行更新:
$ pyenv rehash
- 查看当前已经安装的python版本
$ pyenv versions
* system (set by /home/seisman/.pyenv/version)
3.4.
其中星号代表是当前系统正在使用的python版本是系统自带的。
- 设置全局的python版本
$ pyenv global 3.4.
$ pyenv versions
system
* 3.4. (set by /home/seisman/.pyenv/version)
从上面,我们可以看出来当前的python版本已经变为了3.4.3。也可以使用pyenv local或pyenv shell临时改变python的版本。
- 确认python版本
$ python
Python 3.4. (default, Apr , ::)
[GCC 4.8.] on linux
Type "help", "copyright", "credits" or "license" for more information.
注意事项:
- 输入python即可使用新版的python;
- 系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;
- 使用pip安装第三方模块时会安装到~/.pyenv/versions/3.4.3下,不会和系统模块发生冲突;
- 使用pip安装模块后,可能需要执行pyenv rehash更新数据库。
参考资料:
[1] http://seisman.info/python-pyenv.html
[2] http://crazyof.me/blog/archives/13.html
ubuntu下安装多版本Python的更多相关文章
- Ubuntu下安装pip3和Python的第三方库
一.Ubuntu原有环境说明 无论是在服务器上面还是在我们自己的电脑上面,当我们成功安装了Ubuntu系统之后,系统一般情况下会自带Python2.x和Python3.x环境.比如我在自己的阿里云服务 ...
- Python 基础之在ubuntu系统下安装双版本python
前言:随着python升级更新,新版本较于老版本功能点也有不同地方,作为一个初学者应该了解旧版本的规则,也要继续学习新版本的知识.为了能更好去学习python,我在ubuntu安装python2和py ...
- Mac下安装多版本python
1.安装Homebrew 将命令行复制至终端,进行安装. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...
- Centos7下安装共存版本Python
最近遇到个问题, 本机环境已安装了Python2 已安装的应用依赖于Python2,不能替换原系统的Python环境,但新安装的应用需要依赖于Python3 需要安装两个不同版本Python,解决 ...
- Ubuntu下安装指定版本的mysql
1.编辑/etc/apt/sources.list和/etc/apt/sources.list.save, 手动加上deb http://archive.ubuntu.com/ubuntu trust ...
- ubuntu下安装低级版本gcc/g++ 并随意切换
来自:http://blog.sina.com.cn/s/blog_6cee149d010129bl.html 发现Android的版本中编译Host的程序经常因为本机的Gcc版本过高,需要这样那样的 ...
- ubuntu下安装tensorflow-gpu版本过程
我之前已经安装了cpu-only版的tensorflow,所以现在要先把原先的tf卸载 sudo pip uninstall tensorflow sudo pip3 install tensorfl ...
- Ubuntu16.04下安装最新版本的CMake
当前最新版CMake为3.9.1.. Ubuntu中更新cmake到最新版本,过程如下: 1. 卸载已经安装的旧版的CMake[非必需] apt-get autoremove cmake 2. 文 ...
- 在Window平台下安装xgboost的Python版本
原文:http://blog.csdn.net/pengyulong/article/details/50515916 原文修改了两个地方才安装成功,第3步可以不用,第2步重新生成所有的就行了. 第4 ...
随机推荐
- VB.NET读取Excel工作表信息
Dim dt As DataTable = ExcelConn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
- [SmartFoxServer概述]SFS2X栈平台
SmartFoxServer 2X 栈平台 在这有一张SmartFoxServer 2X平台的鸟瞰图,接下来会简要介绍栈中的每个组件. 首先是服务器的核心——网络引擎(代号BitSwarm),它是用以 ...
- hibernate 不识别union解决方法
问题: 一个表里有 1, 2 1, 3 2, 1 2, 4 现在要找第一位是1的第二位:2,3 和 第二位是1的第一位:2.然后去掉重复 ...
- C2第三次作业解题报告
看过题解后如果觉得还算有用,请帮忙加点我所在团队博客访问量 http://www.cnblogs.com/newbe/ http://www.cnblogs.com/newbe/p/4069834.h ...
- iPad上的Cookie到底有多长?
[故事背景]: 公司某个站点,特别依赖Cookie的使用,而且用的比较狠.在设计之初想当然地以为到达Cookie上限是猴年马月的事儿,没想到时过境迁,这个上限真的来了. 着手改吧,也不想投入太多.于是 ...
- Dynamic CRM 2013学习笔记(三)快速创建实体 EntityCreater
一.实体简介 实体用于在 Microsoft Dynamics CRM 中建立业务数据模型和管理业务数据.例如,可以使用客户.市场活动和事件(案例)等实体跟踪和支持销售.市场营销和服务活动.实体具有一 ...
- 第十六章:异步处理之AsyncTask的应用
前言 我们知道Android的UI主线程主要负责处理用户的按键事件.用户的触屏事件以及屏幕绘图事件等:既然UI老人家都这么忙了,我们这些开发者肯定不能不识趣的去添乱阻塞UI线程什么的,否则UI界面万一 ...
- [C++] socket -7 [邮槽]
::利用邮槽实现windons进程通信 ::一般情况下CreateMailslot()常被使用在进程通信的服务器上,在客户端则是用函数CreateFile()打开指定的邮槽之后进行相关的操作. ::将 ...
- struts2学习笔记之二:基本环境搭建
学习struts2有一段时间了,作为一个运维人员学习的时间还是挺紧张的,写这篇文件为了方便以后复习时使用 环境: MyEclipse 10 tomcat6 jdk1.6 首先建立一个web项目,并 ...
- 使用tornado的gen模块改善程序性能
之前在公司的一个模块,需要从另一处url取得数据,我使用了Python的一个很著名的lib,叫做requests.但是这样做极大的降低了程序的性能,因为tornado是单线程的,它使用了所谓的reac ...