pyenv的安装和使用

作为主流开发语言, 用Python 开发的程序越来越多。 方便的是大多Linux系统里面都默认集成了python, 开发可以随时随地开始。 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的。 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到两种python版本, 切换起来更是麻烦。

本文将介绍如何利用pyenv 和virtualenv 在单机上搭建多版本python 虚拟开发环境。

首先我们搞清楚pyenv 和virtualenv分别是干什么的。

pyenv可以帮助你在一台开发机上建立多个版本的python环境, 并提供方便的切换方法。

virtualenv则提供了一种功能, 就是将一个目录建立为一个虚拟的python环境, 这样的话, 用户可以建立多个虚拟环境, 每个环境里面的python版本可以是不同的, 也可以是相同的, 而且环境之间相互独立。

如果解释得还不是很清楚的话,我们举例说明。

首先我们可以用pyenv 安装多个python 版本, 比如安装了2.5, 2.6, 3.3 三个版本。 用户可以随意切换当前默认的python版本。 但这时候, 每个版本的环境仍是唯一的, 如果我们想在环境中安装一些库的话, 还是会导致这个版本的环境被修改。 这个时候, 如果我们用virtual env去建立虚拟环境, 就可以完全保证系统路径的干净。无论你在虚拟环境中安装了什么程序, 都不会影响已安装版本的系统环境。

说了这么多, 还是动手实践一下来得实在。本文的例子是在一台干净的Ubuntu机器上进行的

1. 首先我们安装pyenv

因为我的Ubuntu是干净的, 所以还需要先安装curl 和 Git

sudo apt-get install curl git-core

接下来安装pyenv

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

这个命令会把pyenv安装到当前用户的 ~/.pyenv目录下.

同时, 我们还需要把下面代码存到~/.bashrc文件中:

export PYENV_ROOT="${HOME}/.pyenv"if [ -d "${PYENV_ROOT}" ]; thenexport PATH="${PYENV_ROOT}/bin:${PATH}"eval "$(pyenv init -)"
fi

这段代码的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面运行pyenv命令。 保存在~/.bashrc 文件中是为了每次用户登陆后自动生效。

所以如果你是第一次运行命令并且没有注销的话, 这一段是不会生效的, 我们还需要运行下面的命令令其生效

source ~/.bashrc

然后就可以直接在命令行里面敲pyenv了。

2. 安装一些必须的包

sudo apt-get build-dep python2.7

后面安装其他版本python的时候会需要这些包

3. 安装某个版本的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.13.3.5

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

system 代表当前系统的python 版本

2.7.1 和 3.3.5是我们用pyenv安装的

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

4. 切换python版本做一下测试

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

pyenv global 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 uninstall x.x.x

5. 利用virtualenv 创建虚拟python环境

现在我们已经安装了多个python版本,但是这还不够, 某些有洁癖的程序员是一定要系统环境足够干净的,这时候我们可以使用virtualenv来创建虚拟python环境

virtualenv本是一个独立的工具,官网在这里:https://pypi.python.org/pypi/virtualenv

幸运的是,如果你是安装我们前面的方式安装pyenv的,那它已经帮我们以plugin的形式安装好了virtualenv, 我们只要使用就好了

首先我们创建一个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.13.3.5env271

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

6. 切换和使用新的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

那如果要删除这个虚拟环境呢? 答案简单而且粗暴,只要直接删除它所在的目录就好:

rm -rf ~/.pyenv/versions/env271/

pyenv管理虚拟环境相关推荐

  1. python虚拟环境和pyenv_Python多版本管理器pyenv和虚拟环境pyenv-virtualenv的安装设置...

    软件简介: pyenv 是一款特别好用的Python版本管理器,程序员可以建立不同的目录,在不同的目录里分别运行不同版本的Python, 并且互不影响,安装的包也互不影响.github项目地址:htt ...

  2. python怎么进入虚拟环境_Python 中如何使用 virtualenv 管理虚拟环境

    1. 什么是虚拟环境? 虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰. 举个例子吧. 假设我们的电脑里有两个项目,他们都用到同一个第三方包,本来一切都 ...

  3. 用于管理虚拟环境的 Python 工具

    用于管理虚拟环境的 Python 工具 Python 虚拟环境是"一个自包含的目录树,其中包含特定版本 Python 的 Python 安装,以及许多附加包"(来自官方文档的引用) ...

  4. 使用conda管理虚拟环境

    在学习和工作中,经常需要用到多个环境,有的时候需要python3.6的环境,有的时候需要python3.5的环境,有的时候需要pytorch 0.4,有的时候又需要pytorch1.5. 为了解决上述 ...

  5. conda管理虚拟环境

    一.conda管理虚拟环境 1.创建虚拟环境 创建一个名为py36的虚拟环境,指定python版本为3.6.1 conda create -n py36 python=3.6.1 2.激活虚拟环境 # ...

  6. pipenv管理虚拟环境

    pipenv管理虚拟环境 1. 安装pipenv pip install pipenv 2. 创建虚拟环境 # 进入指定文件夹, 输入: pipenv install 执行后会生成两个文件Pipfil ...

  7. 利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境

    我们经常会遇到这样的开发需求,比如你手头有多个开发项目,其中项目A要求用python3.7,项目B需要用python3.6,有要求项目A和项目B依赖包相互独立,互不干扰.为了满足这样的开发需求,我们需 ...

  8. 使用 pyenv 管理 Python 版本

    http://einverne.github.io/post/2017/04/pyenv.html

  9. Python虚拟环境安装与pyenv

    Python环境安装 Pyenv Python虚拟环境:pyenv https://github.com/pyenv/pyenv pyenv是Python多版本管理工具,需要管理的部分: 管理Pyth ...

  10. python人工智能教程——虚拟环境以及包的管理

    简介 在对人工智能的学习中,我们往往会用到python标准库中没有的包.那么如何下载包,管理包成了我们的一个问题.不用担心,本篇文章将为大家介绍如何去操作. 使用Anaconda管理虚拟环境 相信搜到 ...

最新文章

  1. Cruise Control
  2. ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II
  3. 使用字符缓冲流读取数据
  4. lucene计分公式详解
  5. redhat6.4 安装oracle 10g error
  6. 对爬虫数据分析的同学不要错过啦 数据分析数据可视化: Matplotlib
  7. 精密单点定位/PPP软件GAMP学习之一
  8. Arduino连接GPS模块
  9. 京东和淘宝近十年搜索热度对比,发现顶尖者的PK规律
  10. Windows下的random_device
  11. 通过微信传文件在服务器保留几天,微信发送文件多久会失效
  12. 端点检测(VAD)技术
  13. PhotoSwipe 图片浏览插件使用方法 - 简单
  14. ubuntu 破解Beyond compare 4
  15. Scrum 项目 4.0-5.0-约教网站开发(一)
  16. ssc预测计划 php,千里马全天ssc计划
  17. html轮播台袋效果,css3百叶窗轮播图效果
  18. 详解:生产车间的作业流程分析与改善方法!
  19. 实用网页制作工具集锦
  20. win10启用/关闭预留存取空间

热门文章

  1. seaborn系列 (10) | 盒形图boxplot()
  2. raid(磁盘阵列)
  3. node.js学习笔记(8)--multer模块文件上传
  4. 几何视角下的线性代数(3)---基与特征
  5. Data Integration Introduction
  6. nn棋盘放n个皇后java_帮忙解决一道大学c++题八皇后问题。在一个8*8的国际象棋盘,有八个皇后,每个皇后占一格:要求棋盘上放上八个皇后是不出现...
  7. java高级实训输出张三李四_假设某数据库表中有一个姓名字段,查找姓名为张三和李四的条件是...
  8. 先手获胜逻辑题_宣布障碍塔挑战赛的获胜者和开源版本
  9. 行人重识别论文阅读6-低分辨率的行人重识别研究
  10. 七代处理器装win7_Intel7代处理器 win10重装win7后无法安装显卡声卡驱动的解决方案 | A小可私人狗窝...