# pyenv:多版本python

# 概述

  • pyenv是一个Python版本的管理工具,可以很方便的全局切换Python版本,也可以给单个项目提供对应的Python版本

# 安装

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

配置环境变量

echo '' >> ~/.bashrc
echo '#### PYENV ####' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
echo '#### PYENV ####' >> ~/.bashrc
echo '' >> ~/.bashrc
source ~/.bashrc

# 使用

# 安装python

$ pyenv install --list //查看可安装的python版本
$ pyenv install -v <version> //安装python

# 更新pyenv

安装完成以后,需要更新一下才能看到已安装的版本

$ pyenv rehash  
$ pyenv versions //查看已经安装好的版本,带*号的为当前使用的版本

# 解决国内安装python下载慢的问题

将下载好的相应的python安装包,例如Python-3.6.1.tgz  放在
~/.pyenv/cache下,并且重命名为Python-3.6.1.tar.gz

然后执行pyenv install 3.6.1

# 选择已安装的python版本

$ pyenv global 3.6.1 //设置全局版本,即系统使用的将是此版本  
$ pyenv local 3.6.1 //当前目录下的使用版本,有点类似virtualenv

要切换python版本,可以用pyenv global/local <version>​。运行global命令会切换全局的python版本;而local命令则会在当前目录下创建.python_version。

一般的,我们不修改全局版本,而使用期默认值system,因为在unix系统上,很多系统工具依赖于Python,如果我们修改了Python的版本,会造成绝大多数的依赖Python的系统工具无法使用,如果你不小心修改了,也不要紧张,使用global命令修改回来就可以了,有时候,你发现部分系统工具无法使用,你也可以看看你当前的Python版本。

# 常见问题

# mac安装python失败

brew install gcc
CC=/opt/homebrew/bin/gcc-11 pyenv install 3.8.12