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数据压缩器
    运行以下指令安装需要的基础库
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm

  然后重新执行指令可得到如下结果:

可以看到报错和警告都完成了。

再次执行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的更多相关文章

  1. 在kali中安装两个版本的python

    在kali中安装两个版本的python 在kali中已经预装了两个版本的python,但是没有装pip(>︿<). 这时使用python或者python3表示python3:使用pytho ...

  2. 在linux系统中安装VSCode(Visual Studio Code)

    在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

  3. 如何在win7系统中安装redis

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/92.html?1455871954 如何在win7系统中安装redis​ ...

  4. AIX系统中安装Java6全过程(全部)

    ====================================================   From: GCG TSC pSeries <ibm800p@cn.ibm.com& ...

  5. 在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程

    在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程 本教程提供PDF格式下载: 在RedHat.Enterprise.Linux_v6.3系统中安装Ora ...

  6. 在Windows系统中安装集成的PHP开发环境

    原文:在Windows系统中安装集成的PHP开发环境 刚想学php的,又不会配置复杂php的环境,可以使用集成的,目前网上提供常用的PHP集成环境主要有AppServ.phpStudy.WAMP和XA ...

  7. 在 Linux 系统中安装Load Generator ,并在windows 调用方法

    在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...

  8. 在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法

    在Ubuntu 12.04系统中安装配置OpenCV 2.4.3的方法   对于,在Linux系统下做图像识别,不像在windows下面我们可以利用Matlab中的图像工具箱来实现,我们必须借助Ope ...

  9. 在Debian/Ubuntu系统中安装*.sh与*.bin文件

    在Debian/Ubuntu系统中安装*.sh与*.bin文件的基本方法.一,安装*.sh文件运行命令行至文件目录下,执行:sudo sh *.sh直接运行在命令行中执行:sudo chmod +x ...

随机推荐

  1. Error during artifact deployment. See server log for details.

    Error during artifact deployment. See server log for details. 这两个地方要一样.不然.就报 Error during artifact d ...

  2. mysql 表映射为java bean 手动生成。

    在日常工作中,一般是先建表.后建类.当然也有先UML构建类与类的层级关系,直接生成表.(建模)这里只针对先有表后有类的情况.不采用代码生成器的情况. 例如: 原表结构: ),)) BEGIN ); ) ...

  3. SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)

    1.概念:Restful 基础架构 2.具体内容 对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操作形式在 SpringBoot 之中已经有了明确的讲解,那么本次为 了清 ...

  4. Python学习笔记---切片 列表 元祖 字典 集合

    列表[1,2,3,2]#[] 元祖(1,2,3,2)#() 字典{1:2,3:2}#{} 集合{1,2,3,2}#{} 1,集合与列表的区别,集合里不能有重复元素 2.字典与集合的区别,都是用花括号表 ...

  5. ElasicSearch(4) 与jest结合

    https://spring.io/projects/spring-data-elasticsearch https://docs.spring.io/spring-data/elasticsearc ...

  6. centos实现永久修改hostname

    前言 介绍一下centos的两种修改hostname的方式. 查看hostname [root@slave02 ~]# hostname slave02 临时性修改 [root@slave02 ~]# ...

  7. PHPMailer出现SMTP connect() failed.

    很可能是端口问题,最好把$mailer->SMTPSecure和$mailer->Port分别设置为ssl与465或者tls与587,否则某些浏览器不接受不安全的链接,导致$mailer- ...

  8. Spring中@相关注解的意义

    1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层 2.@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理 3.@rep ...

  9. Intellij IDEA中maven更新不下来pom中的jar包,reimport失效

    问题: Intellij IDEA中使用maven reimport包,一直失败 即使我将本地已存在的一个jar包目录删除了,pom文件那里也没飘红提示找不到  解决方法: maven设置中去掉离线下 ...

  10. 20175314 《Java程序设计》第一周学习总结

    20175314 <Java程序设计>第一周学习总结   教材学习内容总结       除了学院统一购买的<Java 2 实用教程(第5版)>我还在网上买了一本<Head ...