安装

系统环境:CentOS 6.5

安装依赖

yum -y install gcc gcc-c++ make git patch openssl-devel zlib-devel readline-devel sqlite-devel bzip2-devel bzip2-libs

安装pyenv

curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

配置环境变量

官方提供方法:

echo -e '\n#pyenv' >>~/.bashrc
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
source ~/.bashrc

直接在bashrc文件中写入:

vim /root/.bashrc

#这段代码的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面运行pyenv命令。 保存在~/.bashrc 文件中是为了每次用户登陆后自动生效。
export PYENV_ROOT="${HOME}/.pyenv" if [ -d "${PYENV_ROOT}" ]; then
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init -)"
fi #如果你是第一次运行命令并且没有注销的话, 这一段是不会生效的, 我们还需要运行下面的命令令其生效
source ~/.bashrc

pyenv用法

常用命令:

pyenv version        # 查看当前系统使用的python版本
pyenv versions # 查看当前系统拥有的python版本
pyenv install 3.4.1 # 安装3.4.1,可使用-v参数查看详细输出
pyenv uninstall 3.4.1 # 卸载
pyenv local 3.4.1 # local仅对当前目录及子目录生效,告诉当前目录使用版本2.7.5,
pyenv global # 告诉全局环境使用某个版本,为了不破坏系统环境,不建议使用global设置全局版本
pyenv rehash # 重建环境变量,每当你增删 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令

示例

安装某个版本的python

首先我们可以查看一下有哪些版本的python 可以安装

pyenv install --list

结果如下:

2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
...

接下来, 作为例子我们安装两个版本 (2.7.1 和 3.3.5)

pyenv install 2.7.1
pyenv install 3.3.5

安装完毕后, 我们可以查看安装的情况

pyenv versions

输出结果如下:

* system (set by /home/tony/.pyenv/version)
2.7.1
3.3.5

简单来说我们已经在这台机器上安装了三个版本的python

system 代表当前系统的python 版本

2.7.1 和 3.3.5是我们用pyenv安装的

*表示当前的python版本, 可以看到, 我们还在使用的是默认的system 自带的python版本

切换python版本做一下测试

既然已经安装了两个其他版本的python, 我们来做一下测试

pyenv global 2.7.1   #全局进行切换到python 2.7.1版本
pyenv local 2.7.1 #只针对当前目录及其子目录切换python 2.7.1版本

这条命令就是将当前python 版本切换到2.7.1

再次运行 pyenv versions, 结果如下:

  system
* 2.7.1 (set by /home/tony/.pyenv/version)
3.3.5

可以看到当前的python 版本已经切换到2.7.1了, 如果还不放心, 直接运行 ‘python’ 命令进行验证:

tony@ubuntu:~$ python
Python 2.7.1 (r271:86832, May 9 2014, 01:07:17)
[GCC 4.8.2] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>

这里可以清楚看到, 当前版本确实是2.7.1

同理, 我们可以继续用python global在各个版本之间进行切换, 如果要切换回系统版本, 请用:

pyenv global system   #全局进行切换到系统自带python
pyenv local system #只针对当前目录及其子目录切换到系统自带python

如果要卸载某个版本的python, 可以这样:

pyenv uninstall 2.7.1

pyenv virtualenv用法

利用virtualenv 创建虚拟python环境

pyenv通过插件,可以很好的和virtualenv一起工作,通过整合virtualenv,pyenv实现了真正意义上的环境隔离,每个项目都相当于使用一个单独的解释器。

首先我们创建一个2.7.1的虚拟环境

pyenv virtualenv 2.7.1 env271

这条命令在本机上创建了一个名为env271的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/

注意,命令中的 ‘2.7.1’ 必须是一个安装前面步骤已经安装好的python版本, 否则会出错。

然后我们可以继续通过 ‘pyenv versions’ 命令来查看当前的虚拟环境, 结果如下:

* system (set by /home/tony/.pyenv/version)
2.7.1
3.3.5
env271

这里我们可以看到, 除了已经安装的python版本, 我们多出了一个env271的python虚拟环境

切换和使用新的python虚拟环境

切换到新的虚拟环境的命令为

pyenv activate env271

接下来我们的python环境就已经切换到2.7.1的虚拟环境了, 运行 ‘python’ 命令认证

(env271)tony@ubuntu:~$ python
Python 2.7.1 (r271:86832, May 9 2014, 01:07:17)
[GCC 4.8.2] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>>

可以看到, python版本已经是2.7.1, 而且是在虚拟环境之中 (env271)

下面基本上你就可以在这个虚拟环境里面为所欲为了 :) 再也不用担心系统路径被搞乱的问题了。

如果要切换回系统环境, 运行这个命令即可

pyenv deactivate

那如果要删除这个虚拟环境呢?

pyenv virtualenv-delete env271

至此大功告成!


参考资料:

http://www.cnblogs.com/npumenglei/p/3719412.html

http://www.jianshu.com/p/4646dedaaff5

CentOS下用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境的更多相关文章

  1. 用pyenv 和 virtualenv 搭建单机多版本python 虚拟开发环境

    作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试 ...

  2. 用pyenv和virtualenv搭建单机多版本python虚拟开发环境

    作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试 ...

  3. 如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境

    pyenv 和virtualenv分别是干什么的? pyenv帮助你在一台机上建立多个版本的python环境, 并提供方便的切换方法. virtualenv则就是将一个目录建立为一个虚拟的python ...

  4. python虚拟开发环境搭建(virtualenv和virtualenvwrapper)

    虚拟开发环境的搭建 (0) 搭建虚拟环境的意义 使不同的开发环境独立 环境升级不影响其他开发环境,也不影响全局 防止包管理的混乱 (1) 指定 虚拟环境的创建目录 环境变量设置 创建 WORKON_H ...

  5. 使用virtualenv搭建python虚拟开发环境

    在使用python做开发时,如果多人需要在同一台机器上工作,或者机器环境经常变化时, 添加或删除一些python包很可能会影响到你自己的开发环境. 因此,通过virtualenv工具可以创建一个完全属 ...

  6. OSX编译安装Python3及虚拟开发环境Virtualenv

    0X00.前言 因为工作原因,最近主要做Python开发,刚好电脑系统重装之后所有的东西都需要重新配置.此文主要记录OSX下通过源码编译安装Python3以及安装虚拟开发环境Virtualenv. 0 ...

  7. centos6.5下Python IDE开发环境搭建

    自由不是想做什么就做什么,而是想不做什么就不做什么.        ---摘抄于2016/11/30晚 之前学习了一段时间的Python,但所有部署都在windows上.正赶上最近在学习liux,以后 ...

  8. windows下python web开发环境的搭建

    windows下python web开发环境: python2.7,django1.5.1,eclipse4.3.2,pydev3.4.1 一. python环境安装 https://www.pyth ...

  9. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

随机推荐

  1. Trimmomatic安装与使用

    默认参数: java -jar trimmomatic-0.30.jar PE s_1_1_sequence.txt.gz s_1_2_sequence.txt.gzlane1_forward_pai ...

  2. 无法远程访问虚拟机中的EM (Oracle Enterprise Manager)

    今天安装EM,因为文件系统采用ASM来控制,后面需要输入一些ASM相关的信息.这个ASMSNMP用户是新建,所以设个密码自己记下就行. Enter the following information: ...

  3. iOS学习笔记---oc语言第六天

    Block .数组高级 block本质上就是匿名函数(没有名称的函数) block语法和函数指针很相似 回顾函数 函数:C语⾔中,实现某一类功能的代码段. 完整的函数包含两部分:函数声明.函数定义 函 ...

  4. C++STL库之set的用法

    /*set意为集合,是一个内部自动排序不含重复元素的容器*/#include<stdio.h>#include<set>using namespace std;int main ...

  5. ZOJ 1113 u Calculate e

    原题链接 题目大意:迭代求自然常数e. 解法:没什么好说的,注意数据类型和输出格式. 参考代码: #include<stdio.h> #include<math.h> int ...

  6. my PhoneWeb

    <meta name="viewport" content="width=device-width, user-scalable=yes, minimum-scal ...

  7. java日期类型转换总结date timestamp calendar string

    用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式.         Timestamp转化为String: S ...

  8. JavaWeb学习记录(十四)——商城购物之字符串拼接实现最近浏览商品和购物车的功能

    一.字符串拼接的工具类 package blank.util; import java.util.Iterator;import java.util.Map;import java.util.Set; ...

  9. NOIP2016 D2T1 組合數問題(problem)

    题目描述 组合数C(n,m)表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们 ...

  10. LeetCode() Search a 2D MatrixII

    一开始的超时思路 int row=a.size(),col=a[0].size(); for(int i=0;i<row;i++) { if(a[i][col-1] > target &a ...