Python版本切换与虚拟环境管理
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版本切换与虚拟环境管理相关推荐
- ubuntu16.04 python版本切换以及pip工具基本知识点总结
基本知识点: 1.ubuntu16.04自带python2.7 和python3.5,不要卸载系统自带的python2.7或3.5. 2. /usr/bin/python 和/usr/bin/pyth ...
- python版本切换_Ubuntu18.04下python版本完美切换的解决方法
ubuntu18.04版本,python版本python2.7,python3.5,python3.6 因为安装一些库会安装到python3.6上,而默认使用的是python2.7,使用python3 ...
- ubuntu python版本切换_ubuntu 16.04下python版本切换的方法
本文主要是记录ubuntu 16.04下python环境配置,具体内容如下 对于ubuntu 16.04,由于本身是自带python,这样就减少了在windows下的下载和环境变量配置,非常不错.但是 ...
- ubuntu 16.04 多个python版本切换
我们可以使用 update-alternatives 来为整个系统更改Python 版本.以 root 身份登录,首先罗列出所有可用的python 替代版本信息: update-alternative ...
- ubuntu查看python版本-切换Ubuntu默认python版本的两种方法
你可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件可供使用. 1 2 $ls /usr/bin/python* /usr/bin/python /usr/bin/p ...
- mac设置python版本切换,和设置python默认版本
Mac中python多版本切换 1. $ sudo vi ~/.bashrc 2. shell中输入 alias python2='/Library/Frameworks/Python.framewo ...
- python版本切换 for Windows(Anaconda) Linux(pyenv)
文章目录 一.Windows 使用 Anaconda创建虚拟环境(其它操作系统也可以使用Anaconda完成相同的操作) (一)添加一个所需的python版本的环境(本文以python3.6为例) ( ...
- python版本切换
1.以 root 身份登录,首先罗列出所有可用的python 替代版本信息 update-alternatives --list python 这一步可能会报错update-alternatives: ...
- TIPS:Ubuntu 系统python版本切换
1.查看 (1)查看系统中存在的python版本: $ ls /usr/bin/python* (2)查看系统默认版本: $ python --version 2.修改 (1)基于用户修改python ...
- ubuntu python版本切换_ubuntu18.04 python版本切换
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令.哪个软件版本,比如,我们在系统中同时安装了python2.7和pyt ...
最新文章
- leetcode1353. 最多可以参加的会议数目(贪心算法)
- 计算机中函数counta表示,excel中counta函数的使用方法
- 素数路(prime)
- (转)深入理解最强桌面地图控件GMAP.NET --- 原理篇
- 保姆级教程 CSS 知识点梳理大全,超详细!!!
- 20200217:下一个排列(leetcode31)
- 一文简介常见的机器学习算法
- 使用 Lightbox 2 和 JavaScript 构建出色的图片库
- mysql 中文脱敏_怎样选择数据库脱敏系统?
- 轮廓(图形)之凹点切分
- 计算机等级考试报名班级填什么,全国计算机等级考试报名流程
- 商标设计后一定要向商标局进行重新提交,商标持有公司变更后要及时变更商标
- 41. 如何手动触发全量回收垃圾,如何立即触发垃圾回收
- Pycharm代码docker容器运行调试 | 机器学习系列
- XSHELL免费版下载
- 运营人员必知!SPU和SKU是什么?
- npm安装依赖报错 unable to resolve dependency tree....
- TCP 与 UDP 的区别
- 我是如何做到使得开源系统拥有安全的防护框架的呢?
- 童年记忆中的街机游戏