Python2和Python3之间存在较大的差异,并且由于各种原因导致Python2和Python3长期共存。我们在使用的时候,可能会遇到不同的Python版本问题或者是Python工作环境的切换问题。这里介绍pyenv、virtualenv、conda、venv,pyenv用于管理不同的Python版本,virtualenv、conda以及venv管理不同的工作环境。

1. pyenv管理不同的Python版本

我们直接从github上clone项目到本地

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

把以下内容添加进~/.bashrc文件

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


接着,

source ~/.bashrc

我们通过pyenv的help命令验证pyenv是否正确安装以及获取pyenv的帮助信息

pyenv --help


通过pyenv的install命令,查看pyenv当前支持哪些Python版本

pyenv install --list

使用pyenv安装不同的Python版本,例如安装Python 3.5.0

pyenv install 3.5.0


如果遇到 pyenv: BUILD FAILED(Ubuntu 16.04 using python-build 1.2.4-7-gcbf3983)的错误提示
则运行以下代码安装依赖包

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev

安装Python 2.7.11以及Python 3.5.3

pyenv install 2.7.11

pyenv install 3.5.3


查看当前系统中包含的Python版本

pyenv versions


*表示当前正在使用的Python版本

使用pyenv以后,可以快速地切换Python的版本。切换Python版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。例如,切换Python版本以后,相应的pip也会跟着切换,所以不用担心自己用pip版本和Python版本不匹配的问题,如下所示:

pyenv global 2.7.11



如果想要删除Python版本,则使用uninstall命令

pyenv uninstall 2.7.11
2. 使用virtualenv管理虚拟环境

virtualenv用以隔离不同项目的工作环境。例如,用户希望在项目A中使用Flask 0.8这个版本,与此同时,又想在项目B中使用Flask 0.9这个版本。如果我们全局安装Flask,则无法满足用户的需求。这时,我们就可以使用virtualenv。

virtualenv本身是一个独立的工具,用户可以不使用pyenv单独使用virtualenv。但是,如果你使用了pyenv,就需要安装pyenv-virtualenv插件而不是virtualenv软件来使用virtualenv的功能。

我们直接从github上clone项目到本地

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


把以下内容添加进~/.bashrc文件

eval "$(pyenv virtualenv-init -)"

接着,

source ~/.bashrc

查看virtualenv的帮助信息

pyenv help virtualenv


有了pyenv-virtualenv以后,我们可以为同一个Python解释器,创建多个不同的”工作环境”。例如,

pyenv virtualenv 2.7.11 first_project
pyenv virtualenv 2.7.11 second_project


然后,可以使用pyenv virtualenvs子命令查看工作环境

pyenv virtualenvs


这里可以看到我们刚刚创建的两个虚拟环境。

激活first_project虚拟环境,安装flask0.8

pyenv activate first_project
pip install flask==0.8
pyenv deactivate


激活second_project虚拟环境,安装flask0.9

pyenv activate second_project
pip install flask==0.9
pyenv deactivate

如上,有了上述的虚拟环境,我们便可以在项目中使用flask0.8和flask0.9了。只需进行环境切换就行

如果想要删除虚拟环境,则使用

pyenv virtualenv-delete first_project
pyenv virtualenv-delete second_project

再次使用pyenv virtualenvs查看虚拟环境,则为空

3. conda管理虚拟环境

conda管理虚拟环境是挺好用的,我目前也是使用这个。
可以通过官网下载Anaconda3,下载安装之后便可使用(安装过程便不再赘述)

使用conda查看已安装的虚拟环境

conda info -e

创建一个名为python36的环境,指定Python版本是3.6.0

conda create --name python36 python=3.6.0

激活虚拟环境python36

source activate python36

退出虚拟环境python36

source deactivate

删除名为python36的虚拟环境

conda remove --name python36 --all


再次查看虚拟环境,我们可以看到虚拟环境python36已经被删除了

conda info -e

4. venv管理虚拟环境

Python3.3以上的版本通过venv模块原生支持虚拟环境,可以代替Python之前的virtualenv

该venv模块提供了创建轻量级”虚拟环境”,提供与系统Python的隔离支持。每一个虚拟环境都有其自己的Python二进制(允许有不同的Python版本创作环境),并且可以拥有自己独立的一套Python包。其最大的好处是,可以让每一个python项目单独使用一个环境,而不会影响python系统环境,也不会影响其他项目的环境。

$ python3 -m venv <DIR> # 创建名为XX的虚拟环境
$ source <DIR>/bin/activate # 激活虚拟环境
$ deactivate # 关闭虚拟环境

Deprecated since version 3.6: pyvenv was the recommended tool for creating virtual environments for Python 3.3 and 3.4, and is deprecated in Python 3.6.
Changed in version 3.5: The use of venv is now recommended for creating virtual environments.

参考链接:

[1] https://zhuanlan.zhihu.com/p/27294128
[2] https://github.com/pyenv/pyenv
[3] https://stackoverflow.com/questions/37227854/pyenv-build-failed-ubuntu-15-04-using-python-build-20160509
[4] https://github.com/pyenv/pyenv-virtualenv
[5] https://blog.csdn.net/guan__hua/article/details/61240932
[6] https://docs.python.org/3/library/venv.html

Python版本切换与虚拟环境管理相关推荐

  1. ubuntu16.04 python版本切换以及pip工具基本知识点总结

    基本知识点: 1.ubuntu16.04自带python2.7 和python3.5,不要卸载系统自带的python2.7或3.5. 2. /usr/bin/python 和/usr/bin/pyth ...

  2. python版本切换_Ubuntu18.04下python版本完美切换的解决方法

    ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...

  3. ubuntu python版本切换_ubuntu 16.04下python版本切换的方法

    本文主要是记录ubuntu 16.04下python环境配置,具体内容如下 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,非常不错.但是 ...

  4. ubuntu 16.04 多个python版本切换

    我们可以使用 update-alternatives 来为整个系统更改Python 版本.以 root 身份登录,首先罗列出所有可用的python 替代版本信息: update-alternative ...

  5. ubuntu查看python版本-切换Ubuntu默认python版本的两种方法

    你可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件可供使用. 1 2 $ls /usr/bin/python* /usr/bin/python /usr/bin/p ...

  6. mac设置python版本切换,和设置python默认版本

    Mac中python多版本切换 1. $ sudo vi ~/.bashrc 2. shell中输入 alias python2='/Library/Frameworks/Python.framewo ...

  7. python版本切换 for Windows(Anaconda) Linux(pyenv)

    文章目录 一.Windows 使用 Anaconda创建虚拟环境(其它操作系统也可以使用Anaconda完成相同的操作) (一)添加一个所需的python版本的环境(本文以python3.6为例) ( ...

  8. python版本切换

    1.以 root 身份登录,首先罗列出所有可用的python 替代版本信息 update-alternatives --list python 这一步可能会报错update-alternatives: ...

  9. TIPS:Ubuntu 系统python版本切换

    1.查看 (1)查看系统中存在的python版本: $ ls /usr/bin/python* (2)查看系统默认版本: $ python --version 2.修改 (1)基于用户修改python ...

  10. ubuntu python版本切换_ubuntu18.04 python版本切换

    update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了python2.7和pyt ...

最新文章

  1. leetcode1353. 最多可以参加的会议数目(贪心算法)
  2. 计算机中函数counta表示,excel中counta函数的使用方法
  3. 素数路(prime)
  4. (转)深入理解最强桌面地图控件GMAP.NET --- 原理篇
  5. 保姆级教程 CSS 知识点梳理大全,超详细!!!
  6. 20200217:下一个排列(leetcode31)
  7. 一文简介常见的机器学习算法
  8. 使用 Lightbox 2 和 JavaScript 构建出色的图片库
  9. mysql 中文脱敏_怎样选择数据库脱敏系统?
  10. 轮廓(图形)之凹点切分
  11. 计算机等级考试报名班级填什么,全国计算机等级考试报名流程
  12. 商标设计后一定要向商标局进行重新提交,商标持有公司变更后要及时变更商标
  13. 41. 如何手动触发全量回收垃圾,如何立即触发垃圾回收
  14. Pycharm代码docker容器运行调试 | 机器学习系列
  15. XSHELL免费版下载
  16. 运营人员必知!SPU和SKU是什么?
  17. npm安装依赖报错 unable to resolve dependency tree....
  18. TCP 与 UDP 的区别
  19. 我是如何做到使得开源系统拥有安全的防护框架的呢?
  20. 童年记忆中的街机游戏

热门文章

  1. IGBT的驱动功率计算
  2. 事件查看器-Windows程序闪退原因查看方法
  3. 802.11速率详解
  4. gif格式图片的解析
  5. 985本科,自学JAVA四个月,我用二年时间从银行外包跳进了阿里!
  6. 区块链中的交易是什么意思
  7. Cesium离线地图极简教程
  8. C语言RLE压缩解压算法(西电C程序作业4)
  9. Python爬取满7天赎回零费率基金:短线基金定投
  10. 我新鲜出炉的 plist 图集拆图工具!github