聊聊如何随意切换Python版本.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

聊聊如何随意切换Python版本

项目A用的是Python2.7版本开发的(可能由于历史遗留问题没有升级更新版本)

项目B是用Python3.10.4版本开发的,假设使用了requests==2.25.1版本

项目C是用Python3.10.4版本开发的,假设使用了requests==2.27.1版本

首先第一个问题:Python版本的问题,Python2.x和Python3.x版本区别还是比较大的,版本多了不易管理。

其次第二个问题:也许requests的版本在项目B和项目C中并不会造成什么影响。但是在某些其他项目中使用了同一个包的不同版本可能会造成巨大的影响。那么此时就需要进行版本的区分,那么同一个Python版本要使用两种版本的包,显然这种场景下包管理是一个问题,在日常项目开发过程中保证不同的包环境互不干扰是很有必要,也是一个基本需求。那么最好的方式就是两个虚拟环境。

那么有没有一个最终的能解决管理不同版本的解释器的同时也能够提供一种功能来控制不同的包版本呢当然是有的,它就是pyenv。

一、什么是pyenv

pyenv是一个forked自ruby社区的Python环境管理工具,能够轻松的切换全局的Python解释器版本,并且他可以结合virtualenv方便的管理包。安装pyenv以后,他会在你的$PATH中增加环境变量,如下:

?echo$PATH

/Users/allenjol/.pyenv/plugins/pyenv-virtualenv/shims:/Users/allenjol/.pyenv/shims:/usr/local/bin:/usr/local/sbin

所以,pyenv其实是控制了你的PATH环境变量来做到Python的版本切换的。它通过对PATH路径开头插入一个shims的路径来对Python实现版本的控制。

二、pyenv、virtualenv、pipenv的关系和区别

前面说了pyenv是控制Python版本的,virtualenv是比较成熟的Python的虚拟环境管理工具,而pipenv是requrests包的作者KennethReitz写的一个用来作为Python的包管理的工具,它同样可以实现生成虚拟环境。本文暂不讨论这个工具,后面一篇文章会介绍它。

pyenv侧重点在Python解释器版本的管理上,你可以随意的切换你的Python版本,并且不需要指定具体的虚拟环境目录。

三、虚拟环境pyenv

CentOS7下安装pyenv

gitclone/pyenv/pyenv.git~/.pyenv

MacOS下安装pyenv

brewupdate

brewinstallpyenv

如果你MacOS下因为网络原因无法很好的使用brew有两种解决办法:

参考/posts/terminal_configure_proxy_with_clash/这篇文章的方式进行代理设置

设置环境变量

#bash下设置环境变量

echoexportPYENV_ROOT=$HOME/.pyenv~/.bashrc

echocommand-vpyenv/dev/null||exportPATH=$PYENV_ROOT/bin:$PATH~/.bashrc

echoeval$(pyenvinit-)~/.bashrc

source~/.bashrc

#zsh下设置环境变量(我是iterm2+zsh)

echoexportPYENV_ROOT=$HOME/.pyenv~/.zshrc

echocommand-vpyenv/dev/null||exportPATH=$PYENV_ROOT/bin:$PATH~/.zshrc

echoeval$(pyenvinit-)~/.zshrc

source~/.zshrc

查看pyenv版本

pyenv--version

四、命令行使用方法

#查看当前版本

pyenvversion

#查看所有版本

pyenvversions

#查看有哪些版本可供安装

pyenvinstall--list

#安装python3.10.4版本

pyenvinstall3.10.4

#安装一个版本后rehash一下,让pyenv知道管理的Python版本信息

pyenvrehash

pyenvuninstall3.10.4

#查看所有版本

?pyenvversions

system

*3.10.4(setby/Users/allenjol/.py

文档评论(0)

158****0778 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档