1.为什么要管理
Python不同项目可能会用到不同版本的python,python2或者3或者某一特定版本的,也可能会用到特定版本的包。 这时候环境的切换就很麻烦了。所以,从根上就要考虑好版本的管理。
类似于使用nodejs,我就会选择直接安装nvm,然后再通过nvm下载nodejs,而不是直接安装nodejs,这样的好处在于,当拿到一个项目代码后,可以轻松切换到其所需的nodejs版本的环境下。
2.Python的版本管理
pyenv + pyenv virtualenv
pyenv 不是用来管理同一个库的多个版本,而是用来管理一台机器上的多个 Python 版本。主要解决开发中有的项目需要用Python 2.x,有的项目需要用Python 3.x的场景。
pyenv 支持在一台机器上同时安装 cpython(平时说的 Python)、jython、anaconda、micropython、miniconda、pypy、stackless 等等的任意当前可用版本,例如可以同时安装 Python 2.6.9、2.7.15、3.6.6、3.8-dev 几个版本。
pyenv 使用了垫片的原理,可以做到进入项目目录自动选择 Python 版本,使用极为方便,这也是我目前正在使用的工具。
3. pyenv 安装
pyenv安装上后就包含pyenv virtualenv,所以只要安装pyenv
首先,我需要安装一个Python,可以找个新版本的Python装上。然后可以使用pip来安装pyenv。
Python的安装 zhuanlan.zhihu.com/p/344887837
pyenv的安装 blog.csdn.net/Owangxinyan…
4. pyenv 使用
查看可安装的Python版本
pyenv install --list
安装指定版本的Python
pyenv install 3.8.0
版本控制
pyenv version #显示当前版本pyenv
pyenv versions #显示所有可用版本python及当前版本python
pyenv global 3.8.0 #global为全局设置版本,不建议随意使用
pyenv shell 3.8.0 #shell为当前会话设置版本,关闭失效
pyenv local 3.8.0 #local为当前目录设置版本(递归继承)
选择一个版本作为全局的Python版本,安装上pyenv之后,他就把之前安装的Python环境给替换掉了,有可能优先级比较高。
不过不需要关心,后面直接使用这个pyenv就可以了。
cd myproject
pyenv local 3.8.2
上面例子中在在 myproject 项目目录设置了 pyenv local 3.8.2 之后,后续进入该目录及其子目录时,所执行的 python 命令就是 3.8.2 版本,不需手动执行 activate;离开该目录之后,执行的的 python 命令就是系统安装的或者 pyenv global 指定的版本,不需要手动执行 deactivate。
上述几种用法中,优先级为:pyenv shell > pyenv local > pyenv global > system。即优先使用 pyenv shell 设置的版本,三种级别都没设置时才使用系统安装的版本。
6.pyenv删除
直接删除.pyenv文件夹,然后再环境变量中删除环境变量即可。