Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >virtualenv 、pythonbrew 和 pyenv 的探讨

virtualenv 、pythonbrew 和 pyenv 的探讨

原创
作者头像
serena
修改于 2021-08-03 06:56:05
修改于 2021-08-03 06:56:05
1.2K00
代码可运行
举报
文章被收录于专栏:社区的朋友们社区的朋友们
运行总次数:0
代码可运行

作者:劉騰龍

导语

自 Python3 出现后,很多lib的架构及用法已改变,以往 Python2 卻不支持,令不少开发者感得困扰,要解决这个 Python2 及3環境的切换问题,我们需要一个能夠把不同开发环境分开的工具。

简单搜索,我们发现了三个可以解决这个问题的工具,他们分别是:

  1. virtualenv
  2. pythonbrew
  3. pyenv

pythonbrew

在Github官方看到有关pythonbrew已经停止更新的讯息,并且鼓励用家使用pyenv,其实pythonbrew与pyenv基本上是同样的工具,这样我们便剩下两个选择了。

virtualenv

首先我们先说Virtualenv (請先安裝該套件),运作原理如下:

Linux 上安装不同的python版本,比如说Python2.7及Python3.2。

创建以Python2.7为解释器的环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
virtualenv -p /usr/bin/python2.7 env2.7

创建以Python3.2为解释器的环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
virtualenv -p /usr/bin/python3.2 env3.4

用Linux套件Tree查看两个环境的目录:

env2.7

env3.4

当我们创建不同的环境时,virtualenv会把系统内安装了的各 Python版本的相关库及套件复制到我们的指定目录下,以目录来隔离各版本的 Python,详细图示:

日后我们只要激活所需环境便可在不同环境进行开发:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 source env2.7/bin/activate
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 source env3.4/bin/activate

pyenv

顺利安装了pyenv后,查询可安装的版本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyenv install --list

我们可以看到不同的Python版本,因为列表很长,只列举当中几个:

  • 2.7.9
  • 3.6.1
  • anaconda3-4.4.0
  • ironpython-2.7.7

安装Python 2.7.9的版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyenv install 2.7.9

切换Python 2.7.9的版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pyenv global 2.7.9

在/home/user/.pyenv/versions目录下便会看到:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2.7.9

当选择该 Python版本安装时,pyenv会从云端下载有关套件并储存在 .pyenv/versions/ 目录下,环境切换则透过嵌入模组 shims 注入路径来决定使用什么版本的Python,详细图示:

比较

标题1

标题2

标题3

文本1

文本2

文本3

原理

优点

Virtualenv

进入特定目录,在虚拟环境(局域)下运作。

Python 版本一样,都可创建无限的局域环境,方便开发者在相同环境使用不同的 site-packages。

pyenv

利用shims 进行全域切换 Python的不同版本。

Python 从云端下载及即时安装,不需预先在本地安装不同版本才使用。

参考

virtualenv 安装及使用方法:https://virtualenv.pypa.io/en/stable pyenv 安装及使用方法:https://github.com/pyenv/pyenv Linux套件 - Tree 的安装及使用方法:https://www.computerhope.com/unix/tree.htm

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python多版本切换工具-Pyenv
为了安装Anaconda科学计算环境,控制好python版本,今天上午总算折腾好了。
py3study
2020/01/02
3.1K0
Python关键点笔记之使用 pyenv 管理多个 Python 版本依赖环境
从接触Python以来,一直都是采用virtualenv和virtualenvwrapper来管理不同项目的依赖环境,通过workon、mkvirtualenv等命令进行虚拟环境切换,很是愉快。
Jetpropelledsnake21
2019/04/18
1.6K0
一文了解virtualenv、pyvenv、pyenv、pyenv virtualenv
“生命苦短,我用 Python。”一句话说明了 Python 开发的便利性,这也是这么多开发者热衷 Python 的原因。
Coder Sam
2020/03/03
17.7K0
pyenv 神器原理分析
一个传统的方案是每个版本的 Python 可执行文件使用不同的名字,如 python、python2.6、python3。
Coder Sam
2020/03/03
3.8K0
为python版本抓狂,试下pyenv吧安装pyenv版本切换pyenv-virtualenv小结
写python时,最烦的事莫过于版本切换。python3已经很成熟了,但很多生产项目依然用的是2.7版本,本地环境经常需要切换版本。此外,不同项目的依赖也不同,有时还会造成冲突。这些杂七杂八的问题让初学者很烦躁,pyenv正是解决此类问题的神器。
章鱼喵
2018/09/26
1.4K0
为python版本抓狂,试下pyenv吧安装pyenv版本切换pyenv-virtualenv小结
Python多版本神器-Pyenv
使用pyenv可以在一个操作系统上使用多个python版本,自由切换,无比顺畅。它的使用不依赖于Python,是一个简单、独立的纯 shell 脚本工具。
py3study
2020/01/06
5170
Python多版本神器-Pyenv
Python多版本管理器-pyenv 介绍及部署记录
在日常运维中, 经常遇到这样的情况: 系统自带的Python是2.x,而业务部署需要Python 3.x 环境, 此时需要在系统中安装多个Python版本,但又不能影响系统自带的Python 版本,即需要实现Python的多版本环境共存, pyenv就是这样一个Python版本管理器, 可以同时管理多个python版本共存! 简单的说,pyenv 可以根据需求使用户在系统里安装和管理多个Python 版本: - 配置当前用户的python的版本; - 配置当前shell的python版本; - 配置某个项目(目录及子目录)的python版本; - 配置多个虚拟环境.
洗尽了浮华
2018/12/27
1.5K0
pyenv管理多版本python
安装不同的python版本并不是一件易事,更何况想在同一主机上来回切换不同版本的python是难上加难!大家都知道多版本会导致互相干扰,但是不是不不能解决呢??
py3study
2020/01/06
5740
python 使用 pyenv 多环境
利用pyenv 实现python  多版本切换 下载  curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash 安装支持包  yum install  zlib-devel openssl-devel sqlite-devel patch 增加配置:.bash_profile export PATH="/root/.pyenv/bin:$PATH" eval "$(pye
py3study
2020/01/07
6640
python的各种包环境管理工具 virtualenv,pyenv,pipenv
如果你是第一次接触python的环境管理,那你一定会头晕,因为有太多的环境管理工具包,多到你不知道该选择哪一个作为自己的python环境管理工具。
程序那些事儿
2023/03/07
7900
python的各种包环境管理工具 virtualenv,pyenv,pipenv
使用 pyenv 搭建任意 python 环境
开发和部署的过程中,常常遇到 python 版本和环境导致的冲突不兼容问题,pyenv 能够完美解决。
泽霖
2023/11/29
3990
基于pyenv和virtualenv搭建python多版本虚拟环境
pyenv简介 由于Python的依赖是基于site的,这对于生产环境来说,是一种简单而正确的方式,然而,对于我们的开发环境,基于这样的管理方式,带来了可怕的第三方依赖管理的难题,virtualenv适时出现了,拯救了广大被依赖问题困扰的Python程序员。virtualenv无疑是成功的,它为每个项目创建一个虚拟环境,使得项目的依赖全部在一个虚拟且封闭的环境中,互不干扰。然而,这就够了吗?想象下面一种场景:你的新项目在Python 3.3下面开发,而你维护的旧项目,却工作在Python 2.7之上,为了完
Python中文社区
2018/01/31
9880
pyenv,让你轻松切换各种python版本
python虽好,版本让人烦恼 人生苦短,我用python... python语法的简洁优雅,模块的丰富,让有开发经验的人很容易上手,开发效率很高。然而python2和python3的诸多不兼容让人甚为烦恼。虽然python3已经推出多年,可生产环境还在运行着很多python2代码。经常需要在两个大版本之间切换。切换时遇到各种莫名其妙的问题,如pip升级后,默认就是安装在python3,python2的pip不起作用了。安装第三方类库时也时常被python的版本弄晕了。 这种版本混乱管理的问题,如果得不到解
章鱼喵
2018/06/27
3.1K0
安装 virtualenv 和 virtualenvwrapper 来管理环境
安装virtualenv和virtualenvwrapper来管理环境。首先,使用brew安装python3和pip。然后,安装virtualenv和virtualenvwrapper。通过查找virtualenvwrapper的安装路径,在.bash_profile中设置环境变量。创建虚拟环境并激活。使用mkvirtualenv命令新建虚拟环境,使用workon命令切换虚拟环境,使用rmvirtualenv命令删除虚拟环境。不想安装virtualenvwrapper时,在.bash_profile中设置环境变量,使用python3和python2创建虚拟环境。使用source命令激活虚拟环境,使用deactivate命令离开虚拟环境。
片刻
2018/01/05
5520
Python多环境扩展管理
众所周知,Python发展至今,版本众多,在使用过程中经常遇到第三方库依赖的Python版本和系统Python版本不一致的情况。同时又因系统底层需调用当前版本Python,所以不能随意变更当前系统Python版本。如此情境下就会有Python多版本共存的情况。于是,Python多环境管理工具应运而生。Pyenv和Virtualenv均为Python管理工具,不同的是,Pyenv是对python的版本进行管理,实现不同版本之间的切换和使用;而Virtualenv则通过创建虚拟环境,实现与系统环境以及其他python环境的隔离,避免相互干扰。
子润先生
2021/07/07
4820
Python3创建虚拟环境
        Python 应用程序经常会使用一些不属于标准库的包和模块。应用程序有时候需要某个特定版本的库,因为它需要一个特定的 bug 已得到修复的库或者它是使用了一个过时版本的库的接口编写的。         这就意味着可能无法安装一个 Python 来满足每个应用程序的要求。如果应用程序 A 需要一个特定模块的 1.0 版本但是应用程序 B 需要该模块的 2.0 版本,这两个应用程序的要求是冲突的,安装版本 1.0 或者版本 2.0 将会导致其中一个应用程序不能运行。       这个问题的解决方案就是创建一个 虚拟环境 (通常简称为 “virtualenv”),包含一个特定版本的 Python,以及一些附加的包的独立的目录树。        不同的应用程序可以使用不同的虚拟环境。为了解决前面例子中的冲突,应用程序 A 可以有自己的虚拟环境,其中安装了特定模块的 1.0 版本。而应用程序 B 拥有另外一个安装了特定模块 2.0 版本的虚拟环境。如果应用程序 B 需求一个库升级到 3.0 的话,这也不会影响到应用程序 A 的环境。
py3study
2020/01/10
9000
赞!优雅的Python多环境管理神器!易上手易操作!
Python 的不同版本之间常常存在依赖关系和兼容性问题,为了方便开发人员在 不同项目中使用不同的版本 。
Python兴趣圈
2023/11/16
5.6K0
赞!优雅的Python多环境管理神器!易上手易操作!
附001.Python多版本环境管理
由于Python的版本过多,且不同版本之间差异性较大。同时又因系统底层需要调用当前版本Python,所以不能随意变更当前系统Python版本。因此,在多版本共存的情况下,Python多环境管理工具非常重要,常见Python多环境管理工具有Pyenv和Virtualenv。
木二
2022/05/30
1K0
附001.Python多版本环境管理
virtualenvwrapper + pyenv 打造多版本 Python 环境
前言 面对多个 Python 开发项目时,需要针对不同的项目创建相应的开发环境。通常情况下,使用 virtualenv 创建一个虚拟的独立 Python 环境,但是 virtualenv 创建的环境相对分散不便于管理。这里推荐使用 virtualenvwrapper 来创建集中的便于管理的 Python 环境,同时可以结合 pyenv 为不同的项目选定不同的 Python 版本。 virtualenvwrapper 安装 通过 pip 安装 virtualenvwrapper(Ps: 记住加上 sudo)
木制robot
2018/04/11
1.5K0
pyenv快速入门
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/82891843
乐百川
2019/07/02
4330
pyenv快速入门
相关推荐
Python多版本切换工具-Pyenv
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验