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 ...
随机推荐
- LeetCode OJ-- String to Integer (atoi) **
https://oj.leetcode.com/problems/string-to-integer-atoi/ 细节题,把一个字符串转换成整数 class Solution { public: in ...
- unity --项目总结
最近做的unity的项目涉及到的问题如下: 1.绘制折线图问题: 起初利用的unity自带的linerender组件,这种方法绘制的线不均匀,效果不好.然后又利用画线插件Ves……开头的那个,结果那个 ...
- 1606: [Usaco2008 Dec]Hay For Sale 购买干草
Description 约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草. 顿因有H(1≤H≤5000)包 ...
- TreeView树形控件递归绑定数据库里的数据
TreeView树形控件递归绑定数据库里的数据. 第一种:性能不好 第一步:数据库中查出来的表,字段名分别为UNAME(显示名称),DID(关联数据),UTYPE(类型) 第二步:前台代码 <% ...
- Acunetix Web漏洞扫描器
1.主要程序介绍 主要操作区域简介: b).工具栏 从左到右分别是(这些都可以在主要操作区域找到,所以不常用): 新建扫描——网站扫描——网站爬行——目标查找——目标探测——子域名扫描——SQL盲注— ...
- Splunk及splunkforward简单部署配置
部署环境 操作系统 服务器操作系统版本:CentOS release 6.5 (Final) 2.6.32-431.el6.x86_64 软件 软件版本:splunk-6.4.0 tar: splun ...
- 河南省第八届ACM程序设计大赛
A:挑战密室 #include <iostream> #include <cstdio> #include <cstring> #include <algor ...
- Var To DataTable
public static DataTable CopyToDataTable<T>(this IEnumerable<T> array) { var ret = new Da ...
- android 一题多改系列——android 打电话实现两种方法
在android开发中,用户能够拨打电话是最基本的需求.俗话说“条条大路通罗马”,实现拨打电话的方式有多种,今天,就提供最常用两种. 首先,拨打电话,对于用户来说,是一个耗费的操作,因此,需要一定权限 ...
- Knockout学习之模板绑定器
模板绑定器 如今页面结构越来越复杂,仅仅依靠foreach已经不足以我们的使用,这个时候我们就需要模板的存在,模板的优点自然很多,首先会让页面整洁,同时修改起来也可以方面的定位,最重要的是ko可以条件 ...