使用pyenv在系统中安装多个版本的python
pyenv的安装与使用
如果没有安装git,首先要安装git
apt-get install git
安装完成后,使用自动安装程序提供的单行程进行安装:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
使用以下命令将环境变量添加到系统中
cd
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
此时就完成安装了,输入指令
pyenv version
可以查看是否安装成功。

通常你只会安装一个版本的python,即系统版本。这就是上述命令中显示的内容。pyenv现在允许你扩展这个版本。这里系统安装的python版本可以先用python -V查看。
这是系统安装的默认的python版本,现在可以用pyenv install -list命令查看可安装的python版本.

这里安装版本3.4.0(安装过程比较长,可以在最后加上-v来查看编译状况,以免以为卡住了)
pyenv install 3.4.0
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译安装工作。编译过程依赖一些其他的库文件,若库文件不能满足,则编译错误,需要重新下载、编译。。。(常见编译问题解决方法:https://github.com/yyuu/pyenv/wiki/Common-build-problems)
这里有个错误:
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
错误提示缺乏OpenSSL库(因为Python3.4.1这个版本修复了之前的Heart Bleed那个漏洞,所以OpenSSL的版本和之前的版本不同,需要重新安装最新版本的OpenSSL,这是我估计的,因为在Python的官方主页上面看到Python3.4.1这个版本修复了HeartBleed漏洞),安装即可。
这里还有几个警告,是因为没有安装相应的依赖库,需要的依赖库有:
- readline readline-devel readline-static
- sqlite-devel 轻型的数据库
- bzip2-devel bzip2-libs数据压缩器
运行以下指令安装需要的基础库
然后重新执行指令可得到如下结果:

可以看到报错和警告都完成了。
再次执行pyenv version可以看到有两个文件夹,多了一个3.4.0,两个版本分别为系统默认版本和我们下载的版本。

如果我们要用python3.4作为我们的全局工具,可以通过指令
pyenv global 3.4.0
来进行设置。

可以看到当前的python已经被设置为了python 3.4.0的版本。
当然,我们也可以用pyenv来定义项目特定的或本地的Python版本,下面是一个示例

这个示例,创建了一个pyenv_test的文件夹,并通过指令pyenv local 3.4.0将文件夹内的python版本设置为了3.4.0,而全局的版本并没有变。
使用pyenv创建虚拟环境virtualenv
对于使用过virtualenv的人来说,本地Python的想法可能看起来很熟悉。事实上,从pyenv创建的本地Python几乎就像一个Python虚拟环境。
主要区别在于:pyenv每次创建新的pyenv版本时都会复制整个Python安装。但是virtualenv使用符号链接来减小virtualenv的大小。
如果通过pyenv修改你的python版本后,虚拟环境再也无法运作,pyenv提供了一个插件:pyenv-virtualenv。这个插件为pyenv添加了完整的virtualenv功能:
插件的安装如下:
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
source ~/.bashrc
下面为一个使用pyenv创建虚拟环境的相关示例:

在这里,我使用Python 3.4创建了virtualenv,下面可以是

参考资料
pyenv Tutorial
Pyenv 安装部署
使用 pyenv 可以在一个系统中安装多个python版本
在Ubuntu上安装pyenv
拓展资料
Linux 下GNU Readline库函数安装用于实现shell内嵌补全
SQLite
Ubuntu 12.04下安装 SQLite及其使用方法
BZIP
lighttpd及相关依赖库pcre/bzip2在ubuntu下的安装
使用pyenv在系统中安装多个版本的python的更多相关文章
- 在kali中安装两个版本的python
在kali中安装两个版本的python 在kali中已经预装了两个版本的python,但是没有装pip(>︿<). 这时使用python或者python3表示python3:使用pytho ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
- 如何在win7系统中安装redis
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/92.html?1455871954 如何在win7系统中安装redis ...
- AIX系统中安装Java6全过程(全部)
==================================================== From: GCG TSC pSeries <ibm800p@cn.ibm.com& ...
- 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...
- 在Windows系统中安装集成的PHP开发环境
原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...
- 在 Linux 系统中安装Load Generator ,并在windows 调用方法
在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...
- 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法
在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法 对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...
- 在Debian/Ubuntu系统中安装*.sh与*.bin文件
在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...
随机推荐
- linux命令行抓取网页快照
linux命令行抓取网页快照-(xvfb+CutyCapt) 目的: 在一台没有安装X-server的Debian服务器上实现命令行抓取网页快照 软件: xvfb(在命令行下实现对X-server ...
- Android 开发 创建WiFi、WiFi热点 ---开发集合
WIFI 权限 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> < ...
- kettle实现多表同步
本样例实现源库的所有表到目标库的同步sqlserver=>mysql(目标表存在表结构则同步),总调度如下: 由于复制记录到结果保存了多个表名,存在多个值,在高级选择对每个输入行执行一次进行循环 ...
- java 调用 python 的几种方法整理
参考: https://blog.csdn.net/secondlieutenant/article/details/79000265
- viewDidLoad, viewWillDisappear, viewWillAppear等区别及各自的加载顺序
ios 开发中视图的声明周期 viewWillAppear: 视图即将可见时调用.默认情况下不执行任何操作 viewDidAppear: 视图已完全过渡到屏幕上时调用 viewWillDisappea ...
- centos 7设置本地yum资源库
前言 同样的,是在这两天安装ambari的时候遇到的问题之一,那就是关于centos的本地yum源的制作,当时是一种是制作iso镜像的yum源,还有一种将rpm软件包打成压缩包上传到centos的某一 ...
- MM-实际应用中的难题
SAP系统实际应用中的十大难题——塞依SAP培训 难题1:采购料维修 如果有物料坏了,需要退回给供应商处维修,此时一般不做退货.因为,第一,供应商不一定会乐意:第二,往来单据也无谓地增多:第三,最重要 ...
- mysql 乐观锁实现
一.为什么需要锁(并发控制)? 在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突.这就是著名的并发性问题. 典型的冲突有: 1.丢失更新:一个事 ...
- 了解各种不同意义上的new
问题1:请说明new operator 和 operator new的差异? 1.new operator : 一般我们写代码的时候,例如:String *p = new String(&quo ...
- ubuntu安装jdk,maven,tomcat
ubuntu16.04安装jdk8 -jdk 检查是否安装成功 java -version 出现如上信息即安装成功 安装maven,先去官网下载指定版本的maven,个人使用apache-maven- ...