virtualenvwrapper + pyenv 打造多版本 Python 环境

前言

面对多个 Python 开发项目时,需要针对不同的项目创建相应的开发环境。通常情况下,使用 virtualenv 创建一个虚拟的独立 Python 环境,但是 virtualenv 创建的环境相对分散不便于管理。这里推荐使用 virtualenvwrapper 来创建集中的便于管理的 Python 环境,同时可以结合 pyenv 为不同的项目选定不同的 Python 版本。

virtualenvwrapper

安装

通过 pip 安装 virtualenvwrapper(Ps: 记住加上 sudo)。

$ sudo pip install virtualenvwrapper

配置

在.bashrc(或.zshrc)中添加下列内容:

export WORKON_HOME=$HOME
/.virtualenvssource /usr/local/bin/virtualenvwrapper.sh

接着执行`source ~/.bashrc(或./zshrc)。 注意:修改.bashrc还是.zshrc取决于你使用的那种 shell。

使用

  • workon: 打印所有的虚拟环境;
  • mkvirtualenv xxx: 创建 xxx 虚拟环境;
  • workon xxx: 使用 xxx 虚拟环境;
  • deactivate: 退出 xxx 虚拟环境;
  • rmvirtualenv xxx: 删除 xxx 虚拟环境。

pyenv

安装

Linux

使用下列命令自动安装 pyenv:

$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

Mac OS X

使用 homebrew 直接安装:

$ brew update
$ brew install pyenv

配置

在.bashrc(或.zshrc)中添加下列内容:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

然后重启 shell,使配置生效。

$ exec "$SHELL"

使用

1. 查看所有 Python 版本

$ pyenv versions

执行命令将打印出安装的所有 Python 版本,*表示当前使用的 Python 版本。

2. 查询所有可安装的 Python 版本

$ pyenv install -l

3. 安装与卸载

$ pyenv install 2.7.14

安装 Python 2.7.14 版本。

$ pyenv uninstall 2.7.14

卸载 Python 2.7.14 版本

$ pyenv rehash

创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions//bin/,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令)。

4. 设置 Python 版本

$ pyenv shell 2.7.14  # 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。
$ pyenv local 2.7.14  # 设置 Python 本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
$ pyenv global 2.7.14  # 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

注意: shell > local > global。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

Ps: 因为系统本身常常会依赖自带的 python 版本,所以尽量不要修改 global。

5. 取消 shell 或 local python 版本

$ pyenv shell --unset
$ pyenv local --unset

使用镜像加速下载

通过下列脚本使用国内搜狐的镜像快速安装各版本 Python:

v=3.5.2|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

注意:v 为 Python 版本号,请根据需要自行更改。

pyenv-virtualenvwrapper

安装

Linux

通过下列命令安装 pyenv-virtualenvwrapper:

$ git clone https://github.com/pyenv/pyenv-virtualenvwrapper.git $(pyenv root)/plugins/pyenv-virtualenvwrapper

Mac OS X

Mac OS X 下可选择使用使用 Homebrew 来安装:

$ brew install pyenv-virtualenvwrapper

激活

安装完成后使用下列命令激活 pyenv-virtualenvwrapper:

$ pyenv virtualenvwrapper

使用

$ pyenv local 2.7.14  # 设置本地 python 版本为 2.7.14
$ mkvirtualenv python2.7  # 创建 python 2.7.14 版本的虚拟环境 python2.7

参考

  1. pyenv 文档
  2. virtualenvwrapper 文档
  3. pyenv-virtualenvwrapper 文档
  4. 使用 pyenv 管理 Python 版本
  5. pyenv 安装配置与国内镜像加速

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Brian

数据分析利器-NumPy

---- 概述 NumPy类库是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list s...

36480
来自专栏Brian

CentOS6 Upgrade Python

CentOS6 升级Python2.7.X和Python3.X ---- 简述 由于产品需要从裸机开始开发所以所有的配置和开发也是从零开始,这个导航是基于cen...

32750
来自专栏互联网杂技

你知道 Python 这五个有趣的彩蛋吗?

当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西。通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生...

31790
来自专栏互联网杂技

Python爬虫,带你制作高逼格的数据聚合云图

一、直接上几张我的博客数据的云图 1.1 爬取文章的标题的聚合 ? ? 1.2 爬取文章的摘要的聚合 1.3 爬取文章的标题+摘要的聚合 我最近写了Sp...

42680
来自专栏Brian

Python 深浅拷贝

Python浅拷贝和深度拷贝 今天面试了一个计算机专业研究生且大学出身也很好,但是面试的结果来看并没有达到我的预期。很多基础计算机的知识貌似都不是很懂,更别说...

46880
来自专栏Brian

Python With-As

深入理解Python的With-as语句 ---- 学习Python有一段时间了,最近做一个项目会涉及到文件的读取和关闭。比如:我想把一些对象序列化到文件里面,...

1.2K70
来自专栏Brian

Install Django Nginx uWSGI

概述 最近项目需要安装和配置多站点环境,所以把多站点开发环境配置和安装记录下来,帮助其他人少走坑。 安装Python 2.7.x 首先安装一些开发环境基本的包和...

42790
来自专栏互联网杂技

我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言

看了不少朋友圈里推荐的Python爬虫文章,都觉得太小儿科,处理内容本来就是PHP的强项,Python唯一的好处估计也就天生的Linux自带,和Perl一样,这...

57170
来自专栏智能算法

Jupyter notebook使用指南

一、Jupyter介绍 Jupyter Notebook是以web交互式的编程接口,是IPython notebook的升级版本。主要是针对python,另外...

3.4K80
来自专栏Brian

Python GIL

---- 概述 GIL(Global Interpreter Lock)是什么东东?为什么当一些Pythoners在开发一些多线程操作的时候,都会有些很...

45860

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励